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,attack1 = createAnimation(file,12,30,attack2 = createAnimation(file,31,49,specialattack1 = createAnimation(file,56,74,0.2),specialattack2 = createAnimation(file,75,92,defend = createAnimation(file,1,5,knocked = createAnimation(file,126,132,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,稍微好看一点点,呵呵。。。。。。。。