【问题标题】:checking if an SKNode is running a SKAction检查 SKNode 是否正在运行 SKAction
【发布时间】:2013-10-01 07:40:51
【问题描述】:

如何在对 SKNode 运行操作之前检查它是否已经在运行操作? 我希望能够做类似...

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

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

【问题讨论】:

    标签: sprite-kit skaction


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 这是一个更好的答案,因为您可以检查特定动作,而不是检查精灵是否正在运行任何动作(当然,如果您知道动作的关键:)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-19
      • 2021-10-27
      • 2017-08-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多