检查SKNode是否正在运行SKAction

时间:2013-09-25 15:51:40

标签: sprite-kit skaction

在运行操作之前,如何检查SKNode是否已在运行操作? 我希望能够做点像......

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

如果没有内置方式,我正在考虑创建一个新的BOOL属性来保存动作状态。

2 个答案:

答案 0 :(得分:14)

对于迟到的回答感到抱歉,但您可以使用sprite方法hasActions来检查sprite当前是否正在运行任何操作。

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

答案 1 :(得分:11)

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