• cocos2dx for wp之TexturePackerGUI工具使用


    在很多情况下,我们在cocos2d-x 加载精灵都是一张一个精灵的加载。这种方法对于较少的精灵存在的游戏是比较方便的。但是一旦精灵很多,我们就没必要一个个加载了。

    在cocos2d有一种将很多图片保存成为一张大图片,然后独取出来单独使用,这个方法就是plist的图片帧文件,它能极大的减小图片体积,最重要的是大图就能符合2的N次幂宽高的要求了。

    先看看没有使用plist文件时的文件大小:(6M多,恐怖!)

    TexturePackerGUI是专门制作cocos2d plist文件的软件,这个软件最好的优势是有Windows版本的。下面是简单的使用方法:

    打开TexturePackerGUI,将前面的开始界面素材拖入到窗口的右侧栏中。

    建议将DataFormat改成cocos2d-0.99.4,然后点击Publish按钮,保存为game.plist,浏览位置就会发现多出一个game.png(你保存在哪里,图片就在那里生成加载),它们之间是对应的。将其添加到Content工程里,然后做如下两个修改:

    1、修改一下game.png的Content Processor内Textrue Format属性为DxtCompressed。(注意图片的位置,一般都要和plist文件分开存放,不然会有同名错误)

    2、修改game.plist的输入和输出管线,因为plist需要cocos2dxna的独特的内容管线,所以先添加引用:

    然后选择game.plist属性,将输入和输出的管线修改:

    下一步就是如何在代码中使用plist文件:

    View Code
     public PlistClass()
            {
                //base.init();
                CCSpriteFrameCache.sharedSpriteFrameCache().addSpriteFramesWithFile
                    ("game", "plist/images/game");
                CCSprite background = CCSprite.spriteWithSpriteFrameName("GameMenuImg.png");
                background.position = new CCPoint(400, 240);
                addChild(background, 0);
    
                CCSize s = CCDirector.sharedDirector().getWinSize();
                CCMenuItemSprite sMenu = CCMenuItemSprite.itemFromNormalSprite
                    (CCSprite.spriteWithSpriteFrameName("Start.png"),
                    CCSprite.spriteWithSpriteFrameName("Start.png"), this, sss);
                CCMenu menus = CCMenu.menuWithItems(sMenu);
                menus.alignItemsVerticallyWithPadding(20);
                addChild(menus);
    }

    这段代码中使用CCSpriteFrameCache载入了plist文件和png文件,用它们来提前所需要的图片帧,之后在程序中使用,CCSpriteFrameCache是一个仓库,使用文件名来标识所有的内容资源,CCSprite.spriteWithSpriteFrameName能够直接依据文件名从中取出使用。

    但是,效果嘛。。。

    看到上图的红色没,用TexturePackerGUI工具publish之后居然颜色改变了。后来上网查了才知道,这是因为没有license造成的。如果购买的话,需要264.72块(这还是作者发回邮件给我时提到的一个错误!失败啊!!!)我想,很多中国人应该都不会自己掏腰包买。如果是公司就另算了。不过有个好消息是,该软件的作者有提供免费的license给我们,但是要自己申请。

    同时,这是我本人经验强力推荐,与其去百度一个TexturePackerGUI工具,还不如直接去官网下载,不需要什么破解版,你也可以去找作者申请license!

    我去到TexturePackerGUI的官网找了一下,地址如下

    http://www.codeandweb.com/texturepacker/support,浏览到网页中间部分,

    有个“Free version” 里面有

    “Where can I get the free license?Just fill out the Request Free License form.

    I'll have a look at your blog and if it fits the requirements you'll receive an email with the license keys.”

    填写自己的资料然后就看人品了。

    很高兴,我今天终于收到了作者给我的回执,非常感谢你,Andreas Löw。我会好好利用它的!

  • 相关阅读:
    [原创]二路归并排序针对数组的场景(C++版)
    [原创]装饰模式(java版)
    [原创]Java中Map根据值(value)进行排序实现
    [原创]适配器模式(java版)
    信了你的邪
    String和Date转换
    电商运营面试题
    springCloud发送请求多对象参数传递问题
    JS实现页面以年月日时分秒展示时间
    java三种注释以及参数涵义(转)
  • 原文地址:https://www.cnblogs.com/dieaz5/p/2998917.html
Copyright © 2020-2023  润新知