如何检测SKAction是否正在运行

时间:2014-11-27 13:34:29

标签: swift sprite-kit detect skaction

这是我的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是否正在运行,或者检测到玩家是否在运动的代码是什么神奇的代码。

1 个答案:

答案 0 :(得分:2)

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

它应该是这样的:

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

你检查bool

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