Chinaunix首页 | 论坛 | 博客
  • 博客访问: 200651
  • 博文数量: 47
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1259
  • 用 户 组: 普通用户
  • 注册时间: 2013-07-24 10:20
文章分类
文章存档

2014年(21)

2013年(26)

分类: 网络与安全

2014-01-02 17:53:03

 最近参与的一个项目中,我负责自动回合制战斗场景设计,其中人物的动作基本上采用的都是帧动画,基本设计思路是这样的,首先为场景中的角色一一分配站位,其次为每个角色绑定一个站立的帧动画,由于每个人的站立时间是无法确定的,因此我也就简单明了的为它们绑定了一个永动型的站立动作,至角色动作需要改变时,如轮至某角色攻击时,首先stop该角色原先绑定的永动型站立动作,然后给他绑定一个移动+攻击+返回等的一个动作序列,序列结束后,通过回调动作,重新为该角色绑定上永动型的站立动作,使其还原到之前的状态,理论上这个过程是能够实现的,但写好代码,编译运行之后,却发现没有得到自己想要的效果,攻击序列完成之后重新绑定的永动型站立帧动画似乎完全没有执行,造成了人物攻击一次之后,从此失去站立帧动作的尴尬局面。之后也查看了一些列的API,尝试了一些列的其他方法,stopAllActions、pasuAction、pasuAllActions等,甚至直接remove掉之前绑定的永动型站立,但局面依然保持尴尬。。。好吧,就这样个把小时也就过去了,问题没解决,之前许多没用过的方法,倒是都让我给熟悉了一遍,好吧,想想也不亏。


       在永动型上遇到瓶颈后,我又回头仔细想了想,是不是必须采用永动型的站立呢,。。。事实证明:不用,虽然说场景中有多个角色,什么时候轮到某角色攻击是无法确定的,但这个时间也不是无限的,他其实也就在一个时间范围之内,只要我们保证给角色绑定的站立动作能保持到一个回合(同一个角色两次攻击之间的间隔)之上就可以了。想明白之后我决定用有限次重复型代替原来使用的永动型,虽然觉得这两货应该是差不多的,成功希望不大,但只要有一丝希望,还是值得去尝试一番的,抱着这种心态,我仔仔细细的修改了一遍代码,确保没有落下其他闲杂问题阻挡路线后,启动了调试。。。好吧,不得不承认,cocos2d-x总是能给人们带来无法意料的结果!

   目前对于cocos2d-x引擎内部机制还是不太了解,对于永动型帧动画被stop后,之后再次绑定时就失效了的问题,不知道是引擎本身所存在的bug,还是自己操作不对,欢迎遇到同类问题的朋友能加入一起讨论!

阅读(1205) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~