ios - 检测 Sprite 套件游戏中的跌倒和跳跃

标签 ios swift sprite-kit sprite

我正在开发 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/

相关文章:

ios - 在 Swift 中选择 UIPickerView 时如何隐藏键盘

ios - iPhone 5 与 iPhone 4 的图像命名

ios - 如何从 UITableViewCell 中的 UIButton 调用 Controller 中的方法

iOS App - 长时间曝光图像

ios - 为什么在 iOS Swift 中扩展协议(protocol)时需要提供方法实现?

ios - 使用 AWS Amplify 从 iOS (Swift) 连接到 Dynamodb

ios - 在 JWTCryptoSecurity 类中找不到方法 keyFromPemFileWithName

swift - 如何检测商店场景中的节点触摸并将该节点的值传递给 Sprite 套件中的 GameScene

swift - CGPath 的 PhysicsEditor 多边形路径

ios - UIView 使用自动布局调整大小但在运行时获取其帧大小不正确 ios