在Cocos2D中拼图是一种很实用的游戏开发技巧,本篇教程将教你Cocos2D中拼图的简单制作方法及其用法。
第一部分 拼图制作
我们运行破解版 TexturePacker。注意不要运行原有的程序,不然软件会把你的图片变成他自己的版权声明……
看到左边这里,Data file 和 Texture file 的路径表示你的纹理信息存放位置,建议保存在工程的 Resources 文件夹下,到时直接调用。其它选项如图设置即可。如果纹理没有透明色,或者打算降低颜色深度,可以在 Image format 中选择一个更加合适的选项。
然后看到上边,点击这两个按钮的其中一个导入原始的纹理,Add Sprites 是逐个选的,而 Add Folder 可以直接将一整个文件夹的文件都导入。
导入之后应该见到右边发生了变化,比如……
然后在刚才导入的按钮旁边找到 Publish,点击它,弹出一个窗口,稍等一下按 OK 即完成生成。
这个时候就能在相应的地方看到这两个文件。
最后你也可以在菜单栏选择 File -> Save 将拼图的信息(tps 文件)保存在任何地方,方便下次添加图片。(这个文件最好不要放在 Resource 文件夹下)
第二部分 使用拼图
首先,用以下的代码就能把文件引用到程序中。
CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("sample.plist", "sample.png");
里面的 sample.plist、sample.png 就是刚才你保存的文件名。
然后创建一个 BatchNode。
CCTexture2D * texture = CCTextureCache::sharedTextureCache()->textureForKey("sample.png");CCSpriteBatchNode * node = CCSpriteBatchNode::createWithTexture(texture);addChild(node);
这里的 sample.png 同样要改成你保存的文件名。
最后引用拼图中的“arrpad.png”,同样可以改成你想要的引用的文件名。
CCSprite * arrpad = CCSprite::createWithSpriteFrameName("arrpad.png");arrpad->setPosition(ccp(0, 0));node->addChild(arrpad);
如果你有一个进度条,并且希望异步加载拼图,那么引用的时候要复杂一些。
首先跟平时加载图片一样,加载这个拼图。
CCTextureCache::sharedTextureCache()->addImageAsync("sample.png", this, callfuncO_selector(HelloWorld::loadedCallBack));
其中 sample.png 是拼图文件,HelloWorld::loadedCallBack 是回调函数,自己改。
然后加载完成,进入游戏场景之前,将引用的代码改成这样就行了。
原代码:
CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("sample.plist", "sample.png");
修改后的代码:
CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("sample.plist", CCTextureCache::sharedTextureCache()->textureForKey("sample.png"));
¥118.00
¥108.00
¥66.00
¥299.00