博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cocos2d动画加载
阅读量:5165 次
发布时间:2019-06-13

本文共 1453 字,大约阅读时间需要 4 分钟。

cocos2d是通用游戏引擎,为了保持兼容性与易用性,将动画封装为一个Action。简单的过程就是:使用CCTexture2D生成对应的CCSpriteFrame,然后将CCSpriteFrame添加到CCAnimation中生成动画数据,再用CCAnimation生成CCAnimate(最终的动画动作),最后用CCSprite执行这组动作。相关类的关系如图:

动画关系类图

相关代码如下: 

CCSize s = CCDirector::sharedDirector()->getWinSize();        CCTexture2D* texture2D = CCTextureCache::sharedTextureCache()->addImage("animation.png");        CCSpriteFrame* frame0 = CCSpriteFrame::frameWithTexture(texture2D, CCRectMake(32 * 0, 0, 32, 48));        CCSpriteFrame* frame1 = CCSpriteFrame::frameWithTexture(texture2D, CCRectMake(32 * 1, 0, 32, 48));        CCSpriteFrame* frame2 = CCSpriteFrame::frameWithTexture(texture2D, CCRectMake(32 * 2, 0, 32, 48));        CCSpriteFrame* frame3 = CCSpriteFrame::frameWithTexture(texture2D, CCRectMake(32 * 4, 0, 32, 48));        CCArray* animFrames = CCArray::createWithCapacity(4);        animFrames->addObject(frame0);        animFrames->addObject(frame1);        animFrames->addObject(frame2);        animFrames->addObject(frame3);        CCAnimation* animation = CCAnimation::animationWithSpriteFrames(animFrames, 0.2f);        animFrames->release();        CCSprite* sprite = CCSprite::spriteWithSpriteFrame(frame0);        sprite->setPosition(ccp(s.width / 2, s.height / 2));        this->addChild(sprite);        CCAnimate* animate = CCAnimate::actionWithAnimation(animation);        sprite->runAction(CCRepeatForever::actionWithAction(animate));

 

转载于:https://www.cnblogs.com/wangxiuqiang/p/3235953.html

你可能感兴趣的文章
CSS属性值currentColor
查看>>
Real-Time Rendering 笔记
查看>>
多路复用
查看>>
利用SignalR来同步更新Winfrom
查看>>
反射机制
查看>>
CocoaPod
查看>>
BZOJ 1251: 序列终结者 [splay]
查看>>
【UVA】434-Matty's Blocks
查看>>
hadoop2.2.0+hive-0.10.0完全分布式安装方法
查看>>
使用Reporting Services时遇到的小问题
查看>>
约瑟夫问题
查看>>
Arduino 报错总结
查看>>
树莓派Android Things物联网开发:树莓派GPIO引脚图
查看>>
矩阵快速幂---BestCoder Round#8 1002
查看>>
Hadoop HBase概念学习系列之HBase里的宽表设计概念(表设计)(二十七)
查看>>
Day03:Selenium,BeautifulSoup4
查看>>
awk变量
查看>>
mysql_对于DQL 的简单举例
查看>>
35. Search Insert Position(C++)
查看>>
[毕业生的商业软件开发之路]C#异常处理
查看>>