工具CocosBuilder的使用--复杂动画

一个网友推荐过一款制作动画的工具,叫做 Spriter; 其中有个Demo介绍怎么制作游戏中的boss,十分精彩;Sprite的Demo地址为:How to use Spriter 0;资源下载地址:Monster

这篇文章中,我将使用CocosBuilder来复制这个例子,先看截图。


和这个系列之前的文章中一样,先创建cocos2dx工程,命名为Monster,然后在Monster的Resources下建立ccb文件夹,在ccb下创建CocosBuilder工程。然后设置相关属性,拷贝相应的文件。加下来就是cocosBuilder的设计了。

创建File,Root object Type为CCNode,不需要FullScreen, 命名这个文件为monster.ccb:


把相应的13个图片拖动到模拟器中,如下图:


然后调整好位置,图层顺序等,如下图:



接下来的工作就是实现动画了。这里将介绍两个动画,一个是prepare动画,monster在做原地摆臂运动;一个是attack动画,monster将进行一个攻击性动画。

其实动画就是对monster的13个图片进行的Rotate和position等动画设置。(cocosBuilder的详细操作,请参考《[cocos2dx开发技巧2]工具CocosBuilder的使用--集成》)

这里重点介绍attack动画中的头部的动画。头部动画要设计到Rotate,position和frame动画。选择head_0, 在0s,1s处点击r和p按钮,分别创建Rotate和Position的关键帧。然后做相应的调整,在1s只能创建frame动画。如下图:


然后拖动时间轴,查看效果:




创建好attack和prepare动画之后,还要使它们连接起来。attack动画播放完之后,就进入prepare;prepare动画播放完之后接着播放prepare动画(循环播放);具体的时间轴串联,请参考《[cocos2dx开发技巧2]工具CocosBuilder的使用--集成》。

然后创建playground文件,用来测试这个monster。具体如下:


按钮的回调函数设置如下:


导出monster.ccbi, playground.ccbi, 然后在xcode中导入相关文件,就可以进行cocos2dx端的编码了。程序的功能是,当点击btn时,将使prepare状态下的monster进行attack。主要是实现点击按钮的回调函数onAttack。

在xocde中创建Playground类,做如下实现:

[cpp]  view plain copy
  1. class Playground: public CcbBase {  
  2. private:  
  3.     CCNode* monster;  
  4. public:  
  5.     CCB_STATIC_NEW_AUTORELEASE_OBJECT_WITH_INIT_METHOD(Playground, create);  
  6.       
  7.     Playground():monster(NULL) {  
  8.           
  9.     }  
  10.       
  11.     virtual ~Playground() {  
  12.         CC_SAFE_RELEASE(monster);  
  13.     }  
  14.       
  15.     bool onAssignCCBMemberVariable(cocos2d::CCObject * pTarget, const char * pMemberVariableName, cocos2d::CCNode * pNode) {  
  16.         CCB_MEMBERVARIABLEASSIGNER_GLUE(this"monster", CCNode *, this->monster);  
  17.         return NULL;  
  18.     }  
  19.       
  20.     virtual cocos2d::SEL_MenuHandler onResolveCCBCCMenuItemSelector(cocos2d::CCObject * pTarget, const char * pSelectorName) {  
  21.         CCB_SELECTORRESOLVER_CCMENUITEM_GLUE(this"onAttack", Playground::onAttack);  
  22.         return NULL;  
  23.     }  
  24.       
  25.     void onAttack(cocos2d::CCObject *pSender) {  
  26.         CCLOG("attacking");  
  27.           
  28.         CCBAnimationManager* animationManager = (CCBAnimationManager*)monster->getUserObject();  
  29.         animationManager->runAnimationsForSequenceNamed("attack");  //播放attack动画  
  30.     }  
  31.       
  32. };  

demo下载地址:http://download.csdn.net/detail/stalendp/5222590


转自:http://blog.csdn.net/stalendp/article/details/8760957

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值