Spine动画在Cocos2d-x中,多动画切换播放出现残影的解决方法

Spine动画在Cocos2d-x中,多动画切换播放出现残影的解决方法,第1张

概述最近在做的一个项目,NPC的动画是用Spine来做的。游戏中随着不同的状态变化,会导致NPC在“待机”、“准备进攻”、“进攻“、”眩晕“、”死亡“等等多种状态之间来回切换,NPC每切换一种状态,随之就要立刻播放该状态对应的动画。 游戏中播放spine动画是用SkeletonAnimation对象调用setAnimation方法,我遇到的问题是,在多种动画这样切换播放时,有的动画被切换后仍有残影存留

最近在做的一个项目,NPC的动画是用Spine来做的。游戏中随着不同的状态变化,会导致NPC在“待机”、“准备进攻”、“进攻“、”眩晕“、”死亡“等等多种状态之间来回切换,NPC每切换一种状态,随之就要立刻播放该状态对应的动画。


游戏中播放spine动画是用SkeletonAnimation对象调用setAnimation方法,我遇到的问题是,在多种动画这样切换播放时,有的动画被切换后仍有残影存留,直到再一次播放该动画时残影才消失,但该动画播放完后,残影又会存留。


经过多番搜索查找,终于找到解决方法了:只需在SkeletonAnimation对象每次调用setAnimation方法之前都调用下setToSetupPose()方法,即可完美解决这个问题。我的方法如下:

voID GameHero::playAction(const char* actionname,bool loop) {    m_animNode->setToSetupPose();  // m_animNode为SkeletonAnimation对象    m_animNode->setAnimation(0,actionname,loop);}

这样每次播放只需调用playAction方法即可,传入动画名,以及是否循环播放的参数。

总结

以上是内存溢出为你收集整理的Spine动画在Cocos2d-x中,多动画切换播放出现残影的解决方法全部内容,希望文章能够帮你解决Spine动画在Cocos2d-x中,多动画切换播放出现残影的解决方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1058174.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存