8

How can I check whether a SKNode is already running an action before running an action on it? I want to be able to do something like...

if (![mySprite isRunningActions]) {
    [mySprite runAction:action]; 
}

If there is no built in way I'm thinking of creating a new BOOL property for holding the action state.

4

2 回答 2

16

很抱歉回答迟了,但您可以使用精灵方法 hasActions 来检查精灵当前是否正在运行任何动作。

if (![mySprite hasActions])
{
   [mySprite runAction:action];
}
于 2013-11-15T20:10:17.087 回答
12

查看使用任何SKAction基于键的方法使用命名操作。因此,您将改为使用与 is 等效的命名来运行您的runAction:操作runAction:withKey:。如果具有相同键的操作已在运行,则在添加新操作之前将其删除。或者,用于actionForKey:查看某个操作是否已经像您现在在代码中尝试执行的那样运行,然后removeActionForKey:根据需要将其删除或处理。

于 2013-09-25T16:01:30.943 回答