cocos2d-x之texturepacker的使用
2013-09-03 22:47
246 查看
- 在很多情况下,我们在cocos2d-x 加载精灵都是一张一个精灵的加载。这种方法对于较少的精灵存在的游戏是比较方便的。但是一旦精灵很多,我们就没必要一个个加载了。 在cocos2d有一种将很多图片保存成为一张大图片,然后独取出来单独使用,这个方法就是plist的图片帧文件,它能极大的减小图片体积,最重要的是大图就能符合2的N次幂宽高的要求了。 TexturePackerGUI是专门制作cocos2d plist文件的软件,这个软件最好的优势是有Windows版本的。下面是简单的使用方法: 打开TexturePackerGUI,将前面的开始界面素材拖入到窗口的右侧栏中。 建议将DataFormat改成cocos2d-0.99.4,然后点击Publish按钮,保存为game.plist,浏览位置就会发现多出一个game.png(你保存在哪里,图片就在那里生成加载),它们之间是对应的。 |
接下来, 我们把输出的两个档案(我们这里的例子是images.plist 和 images.png) 放到 Resources 里, 就可以在程序里用 CCSpriteFrameCache 把纹理和有关资料载入:
复制代码 cache->addSpriteFramesWithFile("images.plist", "images.png"); |
复制代码 CCSprite* pSprite = CCSprite::spriteWithSpriteFrameName(" Background.png"); CCSpriteFrameCache *cache = CCSpriteFrameCache::sharedSpriteFrameCache(); cache->addSpriteFramesWithFile("images.plist", "images.png"); // Get window size and place the label upper. CCSize size = CCDirector::sharedDirector()->getWinSize(); CCSprite* pSprite = CCSprite::spriteWithSpriteFrameName("Background.png"); CC_BREAK_IF(! pSprite); pSprite->setPosition(ccp(size.width/2, size.height/2)); this->addChild(pSprite, 0); pSprite = CCSprite::spriteWithSpriteFrameName("Grass Block.png"); CC_BREAK_IF(! pSprite); pSprite->setPosition(ccp(size.width/2, size.height/2)); this->addChild(pSprite, 0); pSprite = CCSprite::spriteWithSpriteFrameName("p8.png"); CC_BREAK_IF(! pSprite); CCSize dim = pSprite->getContentSize(); pSprite->setPosition(ccp(size.width/2, size.height/2+dim.height/2)); this->addChild(pSprite, 0); |
复制代码 CCTexture2D *texture = CCTextureCache::sharedTextureCache()->textureForKey("images.png"); CCSpriteBatchNode *spriteBatch = CCSpriteBatchNode::batchNodeWithTexture(texture); addChild(spriteBatch); |
复制代码 CCSpriteFrameCache *cache = CCSpriteFrameCache::sharedSpriteFrameCache(); cache->addSpriteFramesWithFile("images.plist", "images.png"); CCTexture2D *texture = CCTextureCache::sharedTextureCache()->textureForKey("images.png"); CCSpriteBatchNode *spriteBatch = CCSpriteBatchNode::batchNodeWithTexture(texture); addChild(spriteBatch); // Get window size and place the label upper. CCSize size = CCDirector::sharedDirector()->getWinSize(); CCSprite* pSprite = CCSprite::spriteWithSpriteFrameName("Background.png"); pSprite->setPosition(ccp(size.width/2, size.height/2)); spriteBatch->addChild(pSprite, 0); pSprite = CCSprite::spriteWithSpriteFrameName("Grass Block.png"); pSprite->setPosition(ccp(size.width/2, size.height/2)); spriteBatch->addChild(pSprite, 0); pSprite = CCSprite::spriteWithSpriteFrameName("p8.png"); CCSize dim = pSprite->getContentSize(); pSprite->setPosition(ccp(size.width/2, size.height/2+dim.height/2)); spriteBatch->addChild(pSprite, 0); |
这次先跟大家谈到这里, 下次再继续!
相关文章推荐
- Cocos2d-x TexturePacker的使用
- Cocos2d-x TexturePacker的使用
- cocos2d-x之TexturePacker使用
- 1.在cocos2d里面如何使用texture-packer和像素格式来优化spritesheet.html
- Cocos2d-X 安卓中禁止锁屏,音量调节,TexturePacker文件在函数中的具体使用
- cocos2d-x for wp之TexturePackerGUI工具使用
- (转) TexturePacker 3.0 使用教程
- TexturePacker 3.0 使用教程
- 开篇&TexturePacker打出图集给UGUI使用
- Unity3d NGUI的使用(四)(TexturePacker与UIAtlas生成prefabs)
- TexturePacker打包成的 plist文件的使用
- Cocos2d-x + CocosBuilder + TexturePacker 批处理资源生成(Only for windows)
- TexturePacker(图片打包工具)使用教程---初级篇
- Cocos2d-x中的 CCSpriteFrameCache , CCTextureCache的使用
- Cocos2D-x , CCTextureCache的多线程加载原理和使用方法
- 【iOS-Cocos2d游戏开发之十七】灵活使用精灵可视区域(TextureRect)与锚点(anchorPoint),并结合可视区域与锚点制作进度条!
- Cocos2d下TexturePacker2.3版会给iphone, ipad通用版带来的问题
- 【iOS-Cocos2d游戏开发之十七】灵活使用精灵可视区域(TextureRect)与锚点(anchorPoint),并结合可视区域与锚点制作进度条!
- Cocos2dx使用 TexturePacker导出的.plist
- Cocos2dx使用 TexturePacker导出的.plist