2013-07-15 23 views
2

我有一個CCSprite「_wo1」,它有一個布爾屬性「攻擊」。我在我的更新方法中有以下代碼,我希望它能夠不斷檢查「攻擊」是YES還是NO,並讓我的Sprite執行不同類型的runAction。如何比較兩個CCSprite的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]]; 
     } 

    } 

任何幫助或建議將不勝感激。謝謝!

回答

2

您可以在MySprite類中保留您的精靈的動作狀態,它可以很容易地告訴您在精靈中使用哪個動作。

當您在sprite上運行操作時,只需正確設置狀態即可。例如:

mySprite.actionState = ACTION_WALKING; 

,然後你可以很容易地檢查所使用的動作:

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