objective-c - 比较两个CCSprite的runAction的方法

标签 objective-c cocos2d-iphone ccsprite kobold2d

我有一个CCSprite“_wo1”,它有一个BOOL属性“attack”。我的更新方法中有以下代码,我希望它不断检查“攻击”是是还是否,并使我的 Sprite 执行不同类型的 runAction。

所以我的问题是:

如何比较两个runAction?我尝试了“==”和“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 类中保留 Sprite 的 Action 状态,它可以轻松地告诉您 Sprite 中使用了哪个 Action 。

当您对 Sprite 运行操作时,只需正确设置状态即可。例如:

mySprite.actionState = ACTION_WALKING;

然后您可以轻松检查使用了哪个操作:

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

关于objective-c - 比较两个CCSprite的runAction的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17646057/

相关文章:

iphone - Cocos2D旋转和 anchor

ios - 如何禁用 Xcode 5 中属性的属性自动合成?

IOS - 选择复合数组并将其传递给另一个 ViewController

ios - didEnterRegion 的执行顺序?

iphone - 花栗鼠物理学 : Velocity question

objective-c - Cocos2d - 使用TexturePacker创建的.pvr.ccz spritesheet(位置不正确,模糊)的问题

ios - 我的重力有什么问题?

ios - 带有禁用按钮的 UIActionSheet?

iphone - 让 Sprite 平滑地跟踪接触点

iphone - 由于从 NSMutableArray 中删除 CCSprite 等元素而导致崩溃