2017-01-24 2 views
1

Ich habe einen Ball, und ich möchte es in eine Richtung bewegen, indem Sie eine Kraft anwenden. In meinem Spiel habe ich die 2 Punkte, die eine Linie bilden, die ich dem Ball folgen soll.Wie bekomme ich die dx und dy einer Linie in spritekit swift

Wie kann ich die Vektorkomponenten dx und dy wissen?

Ich weiß nur das (y2 - y1)/(x2 - x1)

EDIT ::

let ddx = (bullet.position.x - position.x) 
let ddy = (bullet.position.y - position.y) 
let Len = sqrt((ddx * ddx) + (ddy * ddy)) 
let dx = ddx/Len 
let dy = ddy/Len 
let force = CGVector(dx: dx, dy: dy) 
let action = SKAction.applyForce(force, at: position, duration: 2) 
let fire = SKAction.repeatForever(action) 
bullet.run(fire, withKey: "firing\(bullet.name)") 

noch nichts

Update ::

Es funktionierte geschieht durch diese

let action = SKAction.moveBy(x: bullet.position.x, y: bullet.position.y, duration: 2) 
+1

In dem Code, den Sie gepostet haben, wo Sie sagten "nichts passiert", sagen Sie nichts, um die Aktion auszuführen. – Fogmeister

+0

bearbeitet Ich habe nur vergessen, es hinzuzufügen –

+1

Sie müssen eine größere Kraft auf das Geschoss anwenden. Probieren Sie diese "Let force = CGVector (dx: 100 * dx, dy: 100 * dy)". – 0x141E

Antwort

1

Scheint, dass Sie Komponenten des Einheitsrichtungsvektors brauchen:

+0

überprüfen Sie meine Bearbeitungen oben –

Verwandte Themen