【问题标题】:How to detect if SKAction is running如何检测 SKAction 是否正在运行
【发布时间】:2014-11-27 13:34:29
【问题描述】:

这是我的 SKAction:

 naarRechts  = SKAction.moveToX(positionX , duration: 0.22)
player.runAction(naarRechts)

在 0.22 秒的持续时间内,我不希望此操作运行:

    if CGRectIntersectsRect(player.frame, car.frame){
        player.position.x = car.position.x
    }

什么是神奇的代码行,我可以检测我的第一个 SKAction 是否正在运行,或者检测玩家是否在移动......

【问题讨论】:

标签: swift sprite-kit detect skaction


【解决方案1】:

您可以创建一个类变量var playerIsInAction = false,然后在运行操作后将其设置为true。还要更改方法,以便您可以编写完成代码(在操作结束后)将 bool 设置回false

应该是这样的:

playerIsInAction = true
player.runAction(naarRechts, completion: {() in 
    playerIsInAction = false
})

然后你检查布尔值

if CGRectIntersectsRect(player.frame, car.frame) && playerIsInAction == false {
    //Code
}

【讨论】:

  • 这在我的情况下不起作用,因为我的 SKaction 的持续时间(0.22)。不过谢谢
猜你喜欢
  • 1970-01-01
  • 2013-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-28
  • 1970-01-01
  • 1970-01-01
  • 2012-09-22
相关资源
最近更新 更多