比较两个CCSprite的运行操作的方法



我有一个CCSprite"_wo1",它有一个BOOL属性"attack"。我的更新方法中有以下代码,我希望它不断检查"攻击"是YES还是NO,并让我的精灵执行不同类型的runAction。

所以我的问题是:

如何比较两个runAction?我试过"=="one_answers"isEqual",但它们不起作用

MySprite *_wo1 = ... // initialize _wo1 using my own class that sub-classed CCSprite
    if (![_wo1 attack])
    {
        _wo1.position = ccp(_wo1.position.x + 10 * dt, _wo1.position.y); // walking forward
        if (currentAction == attAction) // currentAction is defined in setting its runAction in the beginning: "currentAction = [wo1 runAction:[s01WalkAction copy]];"
        {
            [_wo1 stopAction:attAction];
            [_wo1 runAction:[walkAction copy]];
        }
    }
    else{
        if (currentAction == walkAction)
        {
            [_wo1 stopAction:walkAction];
            [_wo1 runAction:[attAction copy]];
        }
    }

如有任何帮助或建议,我们将不胜感激。非常感谢。

您可以在MySprite类中保留精灵的动作状态,这可以很容易地告诉您在精灵中使用了哪个动作。

在精灵上运行操作时,只需正确设置状态即可。例如:

mySprite.actionState = ACTION_WALKING;

然后你可以很容易地检查使用了哪个动作:

  if (mySprite.actionState == ACTION_WALKING)
        {
           // Your handling code
        }

最新更新