我有一个“GameCharacter”类,我在游戏中的主角有一个精灵,我正确加载了帧和动画。我可以通过单点触摸或滑动手势在动画之间切换。现在我可以在动画之间旋转。
在我的场景的触摸功能中,我有这个:
_mychar->RunAnimation(id);
其中 id 是动画的 ID,只是我每次触摸都会更改的整数。
该方法的工作原理如下:
void GameCharacter::RunAnimation(int a){
_sprite->stopAllActions();
if(a<_animation.size() && a>=0){
_sprite->runAction( CCRepeatForever::create(_animation[a]));
}
}
_animation[]
只是一个CCAnimate*
保留对象的向量(我稍后在销毁 GameCharacter 时释放它们)。
我有 2 个空闲动画,我想在它们之间随机切换,例如,我想将第一个动画“排队”3 到 5 次,第二个动画 1 到 2 次,然后永远这样重复......还有,我想要用触摸中断这个“无限随机空闲动画”,使角色运行另一个动画直到它结束(例如跳跃动画),当它结束时,只需进入空闲动画。不知道我解释的好不好,希望你能理解我。
动画的 id 是:
- 0-空闲1(3帧)
- 1-空闲2(6帧)
- 2 跳(12 帧)
- 3 步(12 帧)
现在,我只需要能够让角色处于空闲状态(动画 0 和 1 之间的随机时间),并且每当触摸时,跳跃动画都会完成一次,最后空闲再次开始......
稍后我将解决行走动画。
提前致谢!