我有一个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/