[cocos2dx开发技巧4]工具CocosBuilder的使用--复杂动画

转发,请保持地址:http://blog.csdn.net/stalendp/article/details/8760957

一个网友推荐过一款制作动画的工具,叫做 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类,做如下实现:

class Playground: public CcbBase {
private:
    CCNode* monster;
public:
    CCB_STATIC_NEW_AUTORELEASE_OBJECT_WITH_INIT_METHOD(Playground, create);
    
    Playground():monster(NULL) {
        
    }
    
    virtual ~Playground() {
        CC_SAFE_RELEASE(monster);
    }
    
    bool onAssignCCBMemberVariable(cocos2d::CCObject * pTarget, const char * pMemberVariableName, cocos2d::CCNode * pNode) {
        CCB_MEMBERVARIABLEASSIGNER_GLUE(this, "monster", CCNode *, this->monster);
        return NULL;
    }
    
    virtual cocos2d::SEL_MenuHandler onResolveCCBCCMenuItemSelector(cocos2d::CCObject * pTarget, const char * pSelectorName) {
        CCB_SELECTORRESOLVER_CCMENUITEM_GLUE(this, "onAttack", Playground::onAttack);
        return NULL;
    }
    
    void onAttack(cocos2d::CCObject *pSender) {
        CCLOG("attacking");
        
        CCBAnimationManager* animationManager = (CCBAnimationManager*)monster->getUserObject();
        animationManager->runAnimationsForSequenceNamed("attack");  //播放attack动画
    }
    
};

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值