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)
In dem Code, den Sie gepostet haben, wo Sie sagten "nichts passiert", sagen Sie nichts, um die Aktion auszuführen. – Fogmeister
bearbeitet Ich habe nur vergessen, es hinzuzufügen –
Sie müssen eine größere Kraft auf das Geschoss anwenden. Probieren Sie diese "Let force = CGVector (dx: 100 * dx, dy: 100 * dy)". – 0x141E