我正在开发 Sprite 套件/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
}
如果它跳跃,我希望它只使用这个 if ball.physicalsBody?.velocity.dy > 0 当它掉落时,我只想使用这个 if ball.physicalsBody?。速度.dy < 0。
我该怎么做才能使其正常工作?
最佳答案
您必须更改 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 套件游戏中的跌倒和跳跃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34774717/