cocos2dx 3D战斗类游戏制作:【三】——基于数据库的3D精灵动画1

来源:互联网 发布:黄金交易软件排名 编辑:程序博客网 时间:2024/05/01 07:56
又写程序写累了,换换思路,写个教程放松下吧,呵呵。在cocos之中,对3D精灵动画的支持目前主要是单帧动画,还不涉及到3D的骨骼动画。而单帧动画,又有通过时间,和通过帧数来指定。比如一个动作,其时间是0.1->0.3,那么可以用如下语句来指定这个动画:
auto animate = Animate3D::create(animation, 0.1f,0.3f);
如果其帧数是第12-20帧,那么可以用如下语句来指定:
auto animate = Animate3D::createWithFrames(animation, 12,20);
OK,基本的方法我们了解了。一般的程序,都是把这个动画序列写在程序里面,那样。。。。。。。呃。。。。。。。。。。。你要加一个精灵,就得重新写一个程序。。。。。。。。。。。要加一个动作,也要改一次程序。。。。。。。。。。。。。例如FantasyWarrior3D的相关代码:
-- init Mage animations=============================do    Mage._action = {        idle = createAnimation(file,206,229,0.7),        walk = createAnimation(file,99,119,0.7),        attack1 = createAnimation(file,12,30,0.7),        attack2 = createAnimation(file,31,49,0.7),        specialattack1 = createAnimation(file,56,74,0.2),        specialattack2 = createAnimation(file,75,92,0.2),        defend = createAnimation(file,1,5,0.7),        knocked = createAnimation(file,126,132,0.7),        dead = createAnimation(file,139,199,0.7)    }end

怎么办?呵呵,我从自己的程序里面抽取一个思路出来跟朋友们交流。先说明了是个思路,呵呵,因为我的程序不知不觉已经很庞大了。。。。想抽取整个实现流程居然变得不太现实了。。。。。。。。。。。。。


在第一章的时候,我们说到了,boss是使用数据库定义的,其配套有个boss_action数据库,用于存储某个boss的序列动作。这里详细贴一下。我们照用FantasyWarrior3D的mage.c3b模型,照抄上面lua里面的帧序列哈,呵呵,多省事啊[s:14]


首先,是在boss库增加一条记录,指定一个新boss使用mage.c3b模型,并且指定一下渲染文件缩放比例啥的。



然后,本节重点来了,呵呵,在boss_action库,把mage的动作给抄进去。这次对于mage就先用按帧定义其动画的方式吧,时间参数就先不填了,呵呵,只填各个动作名称、开始与结束帧数。



好了,这就定义好了,如何在程序里面依靠数据库的记录,来实现各个动作的播放呢???忽然觉得写烦了。。。。。。。下一节再继续写,呵呵。先来个mage在我的程序的实现图,之前的小白人太丑啦,换上mage,稍微好看一点点,呵呵。。。。。。。。 



0 0