2016-11-15 1 views
1

Ich habe ein Problem mit meiner Version von Pong. Wenn ich diesen Code eintippe, bewegt sich der Ball nicht auf dem Bildschirm. Wo ist das Problem? Bitte helfen Sie mir!Der Ball bewegt sich nicht in Pong Clone

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 

    } 
} 
+0

Sebastiano Wie schaffst du dein Projekt und woher bekommst du Inspiration? – Confused

Antwort

2

Sie sich bewusst sind, dass dieser Code Zeile

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

bedeutet

"Wenn die Eigenschaft physicsBody der Ball nicht nil ist, rufen Sie die Methode applyImpulse() drauf"

aren‘ t du? Okay. Was macht dieser Code, wenn physicsBodynil ist? Richtig, es wird genau nichts tun. Also haben Sie überprüft, dass physicsBody nicht nil in dem Moment ist, in dem dieser Code ausgeführt wird?

Laut Dokumentation der Immobilie physicsBody:

Der Standardwert ist null, was darauf hindeutet, dass der Knoten nicht in der Physik-Simulation beteiligt ist. Wenn ein Physikkörper bereitgestellt wird, wenn die Physik der Szene simuliert wird, aktualisiert der Physikkörper die Position des Knotens und dreht den Knoten.

Es gibt keinen Code, der zeigt, dass Sie physicsBody auf dem Ballobjekt setzen.

+0

Haben Sie den SpriteKit Scene Editor verwendet? – Confused

+0

@Confused Ich verstehe Ihre Frage nicht. Wie verhält es sich mit meiner Antwort? – Mecki

+0

Ich bin ziemlich sicher, dass das OP alles im Szeneneditor macht und dann versucht, sie zu "importieren" und sie in seinem obigen Code zu verwenden. Apple und einige Tutor-Sites und -Services unterstreichen die Behauptung, dass es möglich ist, Dinge in SpriteKit ohne viel Code zu erledigen. Also könnte dieser Typ ein Opfer davon sein, und hat vielleicht keine Ahnung von Optionen und Physikkörperbildung, etc. – Confused