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