2017-05-15 4 views
0
import SpriteKit 
import GameplayKit 

class GameScene: SKScene { 
    var player = SKShapeNode() 
    let ballRadius: CGFloat = 20 

    override func didMove(to view: SKView) { 
     view.scene?.anchorPoint = CGPoint(x: 0.5,y : 0.5) 
     player = SKShapeNode(circleOfRadius: ballRadius) 
     player.name = "player" 
     player.fillColor = .green 
     player.position = CGPoint(x: 0, y: 0) 
     player.physicsBody?.isDynamic = true 

     self.addChild(player) 

     player.physicsBody?.applyImpulse(CGVector(dx: 0, dy: 10)) 
    } 

    override func update(_ currentTime: TimeInterval) { 
     // Called before each frame is rendered 
    } 
} 

Ich versuche, dem Spieler einen Impuls hinzuzufügen, aber ich kann es einfach nicht herausfinden, bitte seien Sie sehr spezifisch für Ich bin ein Anfänger. Ich denke es hat damit zu tun, dass der skshapenode kein volumenbasiertes Objekt ist, aber ich bin mir nicht sicherImpuls an SKShapeNode

+0

Sie haben tatsächlich keinen Physikkörper erstellt. Es ist null zu der Zeit, wenn Sie einen Impuls darauf anwenden, aber es stürzt nicht aufgrund der optionalen Verkettung ab. – Whirlwind

Antwort

0

Sie sind auf dem richtigen Weg! Alles, was Sie tun müssen, ist, Ihrem Spieler einen Physikkörper hinzuzufügen, damit er sich bewegt.

player.physicsBody = SKPhysicsBody(circleOfRadius: 30) 
    // the 30 in this case is an example. You can just change it to whatever you want 
Verwandte Themen