我正在制作Sprite Kit / Swift游戏。我希望球在跌落和跳跃时做不同的事情。现在,如果跌落了,它还将使用底部的代码(用于跳跃的代码)
这是我正在使用的代码:
override func collisionWithBall(ball: SKNode) -> Bool {
if ball.physicsBody?.velocity.dy < 0 {
ball.physicsBody?.velocity = CGVector(dx: ball.physicsBody!.velocity.dx, dy: 500.0)
if platformType == .Normal {
self.removeFromParent()
}
if platformType == .Break {
self.removeFromParent()
ball.physicsBody?.velocity = CGVector(dx: ball.physicsBody!.velocity.dx, dy: 800.0)
}
}
if ball.physicsBody?.velocity.dy > 0 {
if platformType == .Break {
NSUserDefaults.standardUserDefaults().setInteger(1, forKey: "nextValue")
self.removeFromParent()
ball.physicsBody?.velocity = CGVector(dx: ball.physicsBody!.velocity.dx, dy: -800.0)
}
}
return false
}
如果它跳了,我希望它仅在ball.physicsBody?.velocity.dy> 0时使用。当它掉落时,我只希望在ball.physicsBody?.velocity.dy
我该怎么做才能使其正常工作?
最佳答案
您必须将if语句更改为第二个条件使用else if
。像这样:
if ball.physicsBody?.velocity.dy < 0 {
// Handle falling here...
} else if if ball.physicsBody?.velocity.dy > 0 {
// Handle jumping here...
}
关于ios - 在Sprite Kit游戏中检测下落和跳跃,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34774717/