我正在制作一个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&gt; 0 当它落下时我想只使用这个如果ball.physicsBody?.velocity.dy&lt; 0
我该怎么做才能让它发挥作用?
答案 0 :(得分:0)
您将更改if语句以使用else if
作为第二个条件。像这样:
if ball.physicsBody?.velocity.dy < 0 {
// Handle falling here...
} else if if ball.physicsBody?.velocity.dy > 0 {
// Handle jumping here...
}