Cocos2dx创建精灵的5中方法
来源:互联网 发布:美工图片大全 编辑:程序博客网 时间:2024/06/02 07:31
之前做游戏写代码习惯了一种方式,就不想再尝试其它的方法了,遇到新的问题,觉得旧的方法还是可以解决的,就没有动力去找更好的方法,比如创建精灵,一直以来习惯了第一种、第三种、第四种方法,其它的很少尝试,今天在网上搜索资料,发现很多大神总结的非常好,我先拿来,放到这里,已方便自己以后查阅;
原文地址(不确定是否第一地址)
http://www.myexception.cn/operating-system/1468071.html
http://www.cocos2dev.com/?p=331
cocos2dx创建精灵的五种方法(包括使用图片名获取图片);
还是闲来无事,白白继续给大家分享经验,文笔不好还请见谅!废话少说,直接上代码:
// 创建精灵的五种方法
//方法一:直接创建精灵//适合于要显示的是这张图片的全部区域,CCSprite * sprite = CCSprite::create("Icon.png");//上面那句话也可以根据需要这样来写://CCString* fileName = CCString::createWithFormat("Icon_%d.jpg", flag);//CCSprite* sprite = CCSprite::create(fileName->getCString());sprite->setPosition(ccp(100, 100));this->addChild(sprite);
// 方法二:参数 图片名称 矩形区域
//适合于需要显示此图片的部分区域CCSprite * sprite = CCSprite::create("Icon.png",CCRectMake(0, 0, 30, 30));sprite->setPosition(ccp(100, 100));this->addChild(sprite);方法三: 利用帧缓存中的一帧的名称声称一个对象
CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("test_icon.plist");CCSprite * sprite = CCSprite::createWithSpriteFrameName("Icon.png");sprite->setPosition(ccp(100, 100));this->addChild(sprite);//方法四: 利用另外一帧生成一个精灵对象
//适合于做帧动画使用CCSpriteFrame * frame = CCSpriteFrame::create("Icon.png", CCRectMake(0, 0, 40, 30));CCSprite * sprite = CCSprite::createWithSpriteFrame(frame);sprite->setPosition(ccp(310, 150));addChild(sprite);//方法五:利用纹理,
//适合于需要频繁使用的图片CCSpriteBatchNode* spriteTexture = CCSpriteBatchNode::create("iocn.png");spriteTexture->setPosition(CCPointZero);addChild(spriteTexture);CCSprite* sprite = CCSprite::createWithTexture(spriteTexture->getTexture());sprite->setPosition(ccp(visiblesize.width/2, 100));spriteTexture->addChild(sprite, 2);
纹理用得不多,大多数时候直接用UI出得图片资源创建精灵;
其实,很多时候如果技术足够强大,就能在给定的条件下(比如ui资源)做出更多的效果图片,当然也可以为app节省一些资源,手游在这方面显得尤为重要,用最小的ui资源做出最多得效果,这样,app安装包就可以尽可能的压缩;
在cocos2d-x中,我们创建一个menuitem(CCMenuItemImage...)需要三个图片资源,我们来看一下创建一个CCMenuItemImage的接口:
static CCMenuItemImage* create(const char *normalImage, const char *selectedImage, const char *disabledImage);
在这里分别需要三个图片资源:正常状态、选中状态、禁用状态;我们之前的项目中,最低需求两个(因为没有禁用状态),往往是需要三个图片资源,这无疑增大了游戏的大小;其实,禁用状态的通用模式都是美工将正常状态的图片灰化而已,这用程序就可以实现,不需要另外一个图片,详情请看:点击打开链接;(创建高亮状态的精灵点击打开链接);
关于第5中方法,我之前在游戏中用的也少,主要用在创建背包格子的背景图片上,在此贴出:
在cocos2d-x 2.x 之后,大家都看到了左下角的FPS变成3行,多了两行数据。
最上面一行是指的当前场景的渲染批次(简单理解为需要渲染多少个贴图出来);
中间一行是渲染每一帧需要的时间;
最下行就是大家熟悉的FPS。
这样,我们就由优化程序的方向,针对第一点,请参考:点击打开链接
针对精灵的优化可以参考这篇文章:点击打开链接
- Cocos2dx创建精灵的5中方法
- cocos2dx创建精灵的方法
- cocos2dx创建精灵的五种方法
- cocos2dx四种创建精灵的方法
- 【cocos2dx】创建精灵的两种方法
- cocos2dx创建精灵的五种方法
- cocos2dx创建精灵的五种方法
- [cocos2dx-lua]Cocos2dx-Lua中Sprite精灵的3种创建方法
- cocos2dx 创建精灵的5种方式
- cocos2dx中精灵的动作
- coco2dx中,创建精灵的各种方法
- Cocos2dx中精灵(CCSprite)、动画创建
- 创建精灵的方法
- cocos2dx创建精灵的五种方式
- cocos2dx学习日记一:精灵的创建
- cocos2dx创建精灵动作
- Cocos2dx之精灵创建
- cocos2dx创造精灵的五种方法
- Cocos2d-js官方完整项目教程翻译:六、添加Chipmunk物理引擎在我们的游戏世界里
- 使用ADF Faces 之四:实现拖放功能
- Array排序
- 一个简单的哈希表(线性探测再散列)
- ios 文字编码
- Cocos2dx创建精灵的5中方法
- website/webx框架学习
- reactor和proactor模式(epoll和iocp)
- 使用ADF Faces 之五:使用布局组件
- 结构体指针与结构体中变量的指针
- LeetCode-Two Sum
- Gartner: 传统应用程序开发实践将对移动应用失效
- vs2010 .net 项目打包
- 使用ADF Faces 之六:使用CSS为应用动态换肤