Cocos2d-x:停止以前的操作
如何停止Cococs2d-x中的上一个操作 我的精灵在init方法中有连续的动画 最近我发起了移动行动 我只想停止那个动作Cocos2d-x:停止以前的操作,cocos2d-x,Cocos2d X,如何停止Cococs2d-x中的上一个操作 我的精灵在init方法中有连续的动画 最近我发起了移动行动 我只想停止那个动作 重复的动画仍然只存在。对于动作,我们可以使用setTag方法设置标记。当您不想执行该操作时,请使用CCNode方法“removeActionByTag”删除该操作。对参与方来说有点晚 另一种解决方案是在调用runAction(newAction)之前调用stopAction(currentAction)。这使您能够在开始newAction之前停止currentActionS
重复的动画仍然只存在。对于动作,我们可以使用setTag方法设置标记。当您不想执行该操作时,请使用CCNode方法“removeActionByTag”删除该操作。对参与方来说有点晚 另一种解决方案是在调用
runAction(newAction)
之前调用stopAction(currentAction)
。这使您能够在开始newAction
之前停止currentActionSave
。您需要以某种方式存储currentAction
,可能是一个成员变量,以便以后可以调用stopAction(currentAction)
下面是一个代码示例:
Dog.h
#include "cocos2d.h"
class Dog : public cocos2d::Sprite
{
public:
....
private:
....
bool OnTouchEnded(cocos2d::Touch* touch, cocos2d::Event* /*event*/)
cocos2d::Action* m_currentAction = nullptr;
};
Dog.cpp
#include "Dog.h"
....
bool Dog::OnTouchEnded(cocos2d::Touch* touch, cocos2d::Event* /*event*/)
{
using namespace cocos2d;
....
MoveTo* moveTo = MoveTo::create(time, pos);
if (m_currentAction)
{
stopAction(m_currentAction);
}
m_currentAction = runAction(moveTo);
return true;
}
希望这对别人有帮助