cocos2d-x 动画

来源:互联网 发布:统计网络直报系统 编辑:程序博客网 时间:2024/05/16 10:15

做了1年多后端 一直对前端的东西比较感兴趣 就学学cocos2d.

想做个标准策略战棋 于是就开始了.

地图用的是tiled 然后用画线画出网格 先忽略美观 这里要注意的是ccDrawLine这个东西画出来的是0层 所以要注意不要被盖住

[tu1]


//==========================================================================

接下类就是人物动画啦

没搞过动画 想起有个CocoStudio 就用它好了 里面有个做动画的 看了一下文档 不难上手 

暂时不用骨骼动画 就用帧动画就行了 

拿了RPGMaker的素材 那个人物的 切了人物的几个走动图 放进去 这里要把不同的图片放置不同的Layer (这一步也找了好久= =)

[tu2]


//=========================================================================

然后运用隐藏帧 把同一时刻的其他动作隐藏起来 循环几张图片 我记得是60帧/秒 所以这里也是刚好60帧为一个完整动作

[tu3]


//=========================================================================

搞定了之后用 导出 项目 会自动生成所需PNG和一份plist文件 全部放到一个文件夹放入Resource文件夹 制作动画的就搞定了。

 [tu4]

//=========================================================================

接下来就是要把动画运用到实际项目中了 看了一下CocoStudio文档 在一个角落找到了代码块 用之 = = 

都是基本步骤 重要的就是知道有那个类 注意要 #include "CocoStudio\Armature\utils\CCArmatureDataManager.h" 不然会报错

还有USING_NS_CC_EXT; 加入命名空间

this->addChild 置入层中 就会自己播放啦

[tu5]

//=========================================================================

接下来就是和菜单响应一起合作 实现移动中播动画啦 (还有要用到动作 CCSequence 因为要在moveTo之后做一些事情)

写个菜单 还有响应函数 

这里按移动之后只是记录了需要移动的CCSprite实例 真正移动的响应需要在CCLayer的触摸响应中做

[tu6]

//=========================================================================

层注册一下带目标的触摸 (这里还没有分层 只是为了测试动画 后面再分)

[tu7]


//=========================================================================

触摸响应函数中隐藏CCSprite英雄 播动画

[tu9]

//=========================================================================

这一步比较重要了 使用了序列动作CCSequence,因为我们需要moveTo之后隐藏掉动画 重新显示CCSprite英雄 

用了CCCallFuncND 可以传入void*指针 

void HelloWorld::afterMoveAction(CCNode* pSender, void* data) 回调函数第一个参数为动作执行者 这里就是animation动画实例

这样我们在动作结束后就可以隐藏掉动画 设置英雄新的位置 然后显示英雄 

至此完成了移动的完整过程 TOT

[tu10]

//=========================================================================

现在才发现原来前端要注意的细节不少

一个小小的移动就有这么多步骤 还要做地图坐标逻辑坐标转换 一些细节甚至还包括 P的图片的大小 不然就会很难看 

不过整个过程充满乐趣

接下来需要做一些微调 遇到啥再写吧  (插图真不方便=。=)

0 0