2017-01-03 12 views
2

Ich habe mich gefragt, wie man eine Kraft oder einen Schub auf ein Projektil (speziell einen SKSpriteNode) aufbringt, damit es sich kontinuierlich bewegt, bis es auf etwas trifft. Ich habe einige Möglichkeiten versucht, wie die Geschwindigkeit wie diese Einstellung:Swift 3 (SpriteKit): Einen Projektilzug machen

let node = SKSpriteNode(imageNamed: "node") 
node.physicsBody = SKPhysicsBody(rectangleOf: node.size) 
node.physicsBody.velocity = CGVector(dx: 5, dy: 5) 

oder statt des Knotens Geschwindigkeitswert am Ende ändert, habe ich versucht:

node.physicsBody?.applyImpulse(CGVector(dx: 5, dy: 5)) 

oder

node.physicsBody?.applyForce(CGVector(dx: 5, dy: 5)) 

None von diesen bewegen sich tatsächlich die Geschosse. Ich habe sogar versucht, den gleichen Impuls und die Kraft für jeden Frame mit einem SKAction hinzuzufügen und es gibt immer noch keine Bewegung. Ich würde wirklich jede Hilfe schätzen :) Danke.

Antwort

2

Versuchen Sie, eine sichere Feuer Dynamik auf das Objekt hinzufügen:

let node = SKSpriteNode(imageNamed: "node") 
node.physicsBody = SKPhysicsBody(rectangleOf: node.size) 
// add this, to ensure dynamism: 
node.physicsBody.isDynamic = true 

nun alle Kräfte und Impulse funktionieren sollte. Obwohl ich vorschlagen würde, viel größere Zahlen zu verwenden. Abhängig von der Größe und Masse des Objekts, aber Sie benötigen möglicherweise Zahlen ein paar Größenordnungen höher, um schnelle Bewegung zu erhalten.

+0

Der Standardwert für 'isDynamic' ist' true' – 0x141E

+0

Ich hatte es auf false gesetzt, vielen Dank :) Nicht realisiert. –

Verwandte Themen