Pong Clone中的球不动

时间:2016-11-15 21:14:43

标签: swift sprite-kit swift3

我的Pong版本有问题。 当我输入此代码时,球不会在屏幕上移动。 问题出在哪儿? 请帮帮我!

class GameScene: SKScene {

    var ball = SKSpriteNode()
    var enemy = SKSpriteNode()
    var main = SKSpriteNode()

    override func didMove(to view: SKView) {

        ball = self.childNode(withName: "ball") as! SKSpriteNode
        enemy = self.childNode(withName: "enemy") as! SKSpriteNode
        main = self.childNode(withName: "main") as! SKSpriteNode

        ball.physicsBody?.applyImpulse(CGVector(dx: 20, dy: 20))

        let border  = SKPhysicsBody(edgeLoopFrom: self.frame)

        border.friction = 0
        border.restitution = 1

        self.physicsBody = border

    }
}

1 个答案:

答案 0 :(得分:2)

您知道此代码行

physicsBody

装置

"如果球的nil属性不是applyImpulse(),请在其上调用方法physicsBody"

不是吗?好的。如果nil physicsBody,此代码会执行什么操作?对,它什么都不会做。那么,您在执行此代码的那一刻检查nil是不是physicsBody了吗?

根据财产physicsBody的文件:

  

默认值为nil,表示该节点根本不参与物理模拟。如果提供物理主体,则在模拟场景的物理时,物理主体会更新节点的位置并旋转节点。

没有代码显示您在球对象上设置<key>NSMotionUsageDescription</key> <string>The app uses accelerometer to increase battery efficiency by intelligently toggling location-tracking</string>