C++ 在cocos2d-x中切换精灵动画
我有一个“GameCharacter”类,其中我有一个精灵作为我在游戏中的主要角色,我正确地加载了帧和动画。我可以通过单触或滑动手势在动画之间切换。现在我可以在动画之间旋转 在我的场景的触摸功能中,我有:C++ 在cocos2d-x中切换精灵动画,c++,animation,sprite,cocos2d-x,C++,Animation,Sprite,Cocos2d X,我有一个“GameCharacter”类,其中我有一个精灵作为我在游戏中的主要角色,我正确地加载了帧和动画。我可以通过单触或滑动手势在动画之间切换。现在我可以在动画之间旋转 在我的场景的触摸功能中,我有: _mychar->RunAnimation(id); 其中id是动画的id,只是一个随着每次触摸而改变的整数 该方法的工作原理如下: void GameCharacter::RunAnimation(int a){ _sprite->stopAllActions();
_mychar->RunAnimation(id);
其中id是动画的id,只是一个随着每次触摸而改变的整数
该方法的工作原理如下:
void GameCharacter::RunAnimation(int a){
_sprite->stopAllActions();
if(a<_animation.size() && a>=0){
_sprite->runAction( CCRepeatForever::create(_animation[a]));
}
}
void GameCharacter::RunAnimation(int a){
_精灵->停止动作();
如果(a=0){
_精灵->运行动作(CCRepeatForever::create(_animation[a]);
}
}
\u animation[]
只是一个保留了canimate*
对象的向量(我稍后销毁游戏角色时会释放它们)
我有两个空闲动画,我想在它们之间随机切换,例如,我想“排队”第一个动画3到5次,第二个1到2次,并像这样永远重复。。。另外,我想用一个触摸来中断这个“无限随机空闲动画”,使角色运行另一个动画,直到它结束(例如跳跃动画),当它结束时,只进入空闲动画。我不知道我是否解释得很好,我希望你能理解我
动画的id为:
- 0-idle1(3帧)
- 1-idle2(6帧)
- 2跳(12帧)
- 3-walk(12帧)
提前谢谢 我建议使用
schedule
方法定期运行idle
逻辑,如下所示-
this->schedule(schedule_selector(YourGameClass::idleLogic), FREQUENCY_IN_SECONDS);
在idleLogic
方法中,您可以检查角色是否正在跑步或跳跃,如果是,则为空闲动画数组获取一个随机的索引,然后运行\u animation[index]
。跟踪角色停止的时间也是一个好主意,这样就不会运行任何空闲动画,除非iddleTime>=MIN\u idle\u time
希望能有所帮助。太好了,感谢您的快速响应,我将检查日程安排方法,看看它是如何工作的:)2小时检查日程安排方法,我一点也不明白。。。你能举个例子吗?嗯,到底是什么问题?您是否设法调用schedule,以便定期调用选择器?在我使用objective-c Cocos2d时,恐怕无法为您显示相关代码:(