Cocos2d-x:停止上一步操作

时间:2014-03-11 07:08:51

标签: cocos2d-x

如何停止Cococs2d-x中的上一个动作 我的精灵在init方法中有连续的动画 最近我发起了移动行动 我想只停止那个移动动作 重复动画仍然只在那里。

2 个答案:

答案 0 :(得分:0)

我们可以使用setTag方法设置Tag。如果您不希望该操作使用CCNode方法“removeActionByTag”

删除该操作

答案 1 :(得分:0)

你有点迟到了。

另一种解决方案是在致电stopAction(currentAction)之前致电runAction(newAction)。这使您可以在开始currentActionSave之前停止newAction。您需要以某种方式存储currentAction,可能是成员var,以便稍后调用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;
}

希望这有助于某人。