cocos2dx 3D战斗类游戏制作:【三】——基于数据库的3D精灵动画2
2014-12-16 14:37
661 查看
项目一忙,这教程就顾不上了,呵呵。今天头脑稍得一点空闲,把上次没说完的动画说完。
直接贴代码,呵呵:
在上面,我们已经遍历了一个boss所有的动作的动画,并且分别封装起来推进了vecAnimate容器里面。
在需要boss播放idle动画的时候,你只需要在程序中,简单地执行下面的语句即可:
runAction(vecAnimate.at(Tag_idle));
同理播放move动画,只需执行:
runAction(vecAnimate.at(Tag_move));
本方法中,可以使用时间间隔,或者帧数间隔来定义动画,只需要把代码中注释掉的时间间隔语句启用(同时必须把帧数部分注释掉哦)即可
直接贴代码,呵呵:
vector<map<string, string>> vect_action = DBHelper::GetTable("select action_name,s_frame,e_frame,action_times,action_timee,action_cd,skill_id,bullet_delay from boss_action where boss_id=" + BossID);//从boss_action中,按bossID取出boss所有的action,也就是动画序列 for (int i_action = 0; i_action < vect_action.size(); i_action++) { map<string, string> m_action = vect_action[i_action]; //auto animate = Animate3D::create(animation, atof(m_action["action_times"].c_str()), atof(m_action["action_timee"].c_str()));//按动画开始与结束时间处理动画 auto animate = Animate3D::createWithFrames(animation, atoi(m_action["s_frame"].c_str()), atoi(m_action["e_frame"].c_str()));//按动画开始与结束帧数处理动画 if (strcmp(m_action["action_name"].c_str(), "idle") == 0){ _idle = animate; _idle->retain(); vecAnimate.push_back(animate);//idle动画推入容器 Tag_idle = vecAnimate.size() - 1;//<span style="font-family: Arial, Helvetica, sans-serif;">Tag_idle 设为当前容器尺寸</span> } else if (strcmp(m_action["action_name"].c_str(), "move") == 0){ _move = animate; _move->retain(); vecAnimate.push_back(animate);//move动画推入容器 Tag_move = vecAnimate.size() - 1;<span style="font-family: Arial, Helvetica, sans-serif;">//</span><span style="font-family: Arial, Helvetica, sans-serif;">Tag_move 设为当前容器尺寸</span> } else { //其他动作代码。。。。。。。。。。。。。。 } }
在上面,我们已经遍历了一个boss所有的动作的动画,并且分别封装起来推进了vecAnimate容器里面。
在需要boss播放idle动画的时候,你只需要在程序中,简单地执行下面的语句即可:
runAction(vecAnimate.at(Tag_idle));
同理播放move动画,只需执行:
runAction(vecAnimate.at(Tag_move));
本方法中,可以使用时间间隔,或者帧数间隔来定义动画,只需要把代码中注释掉的时间间隔语句启用(同时必须把帧数部分注释掉哦)即可
相关文章推荐
- cocos2dx 3D战斗类游戏制作:【三】——基于数据库的3D精灵动画1
- cocos2dx 3D战斗类游戏制作:【一】——数据库之一
- cocos2dx 3D战斗类游戏制作:【一】——数据库之二
- cocos2dx 3D战斗类游戏制作:【二】——3D运动模式小准备之二
- cocos2dx 3D战斗类游戏制作:【四】——一些零散笔记,3D小地图,android surfaceview等
- cocos2dx 3D战斗类游戏制作:【二】——3D运动模式小准备
- <cocos2d-x for wp7>使用cocos2d-x制作基于Tile地图的游戏:加入敌人和战斗(三)
- 【Unity 3D 游戏引擎】使用 2DToolkit 插件 制作2D精灵动画
- 基于cocos2dx的2D手游美术资源制作技术选型(1)--UI、纹理格式、动画制作 - 宏波.王
- 【TomoEngine】 第六讲 基于TomoEngine的3D产品(游戏/应用)制作流程
- <cocos2d-x for wp7>使用cocos2d-x制作基于Tile地图的游戏:不一样的战斗(回合制战斗)(四)
- 12. 加入敌人和战斗:如果使用cocos2d制作基于tiled地图的游戏:第三部分
- 基于cocos2dx的横版动作游戏制作(一)
- 基于cocos2dx的2D手游美术资源制作技术选型(1)--UI、纹理格式、动画制作
- cocos2dx 3D游戏制作参考
- (译)加入敌人和战斗:如果使用cocos2d制作基于tiled地图的游戏:第三部分
- (译)加入敌人和战斗:如果使用cocos2d制作基于tiled地图的游戏:第三部分
- 如何使用cocos2dx3.0制作基于tilemap的游戏:第二部分
- 如何使用cocos2dx3.0制作基于tilemap的游戏:第三部分·完
- DirectX3D游戏制作之---3D场景的渲染及人物动画的显示