2017-01-24 16 views
1

私はボールを持っており、力を加えることで方向を移動させたいと思います。 私の試合では、私はボールを追いたいラインを形成する2点を持っています。spritekit swiftで行のdxとdyを取得する方法

ベクトルコンポーネントdxdyをどのように知ることができますか? /(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)") 

それはで働いていた -

私は(Y1、Y2)を知っていますこの

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

あなたが「何も起こらない」と言ったところであなたが実際にアクションを実行するよう指示していないコードにあります。 – Fogmeister

+0

編集しましたそれを追加することを忘れました –

+1

弾には大きな力を加える必要があります。この 'let force = CGVector(dx:100 * dx、dy:100 * dy)'を試してください。 – 0x141E

答えて

1

ユニット方向ベクトルのコンポーネントが必要です:

ddx = (x2 - x1) 
ddy = (y2 - y1) 
Len = Sqrt(ddx * ddx + ddy * ddy) 
dx = ddx/Len 
dy = ddy/Len 
+0

をチェックしてください –

関連する問題