2012-05-22 34 views
2

我正在寫一個非常快的迷你遊戲,我沒有任何矢量實現。這是我有:讓一個點跟着另一個點

local qx = manx 
     local qy = many 
     local px = bigenemyx 
     local py = bigenemyy 
     local vx = qx - px 
     local vy = qy - py 
     local mag = math.sqrt(vx^2 + vy^2) 
     bigenemyx = bigenemyx + mag * speed * dt 
     bigenemyy = bigenemyy + mag * speed * dt 

bigenemy需要遵循manbigenemy剛從屏幕上消失。我爲此急匆匆地爲代碼編寫了代碼,顯然沒有經驗過數學,感謝任何幫助 - 如果我只是沒有想到直接的道歉,我並沒有真正堅持「更快速減少速度」!

回答

2

嘛,你使用「MAG」的值在所有方向 - 這是不好的。嘗試

if(mag < 0.0001): mag = 1 
    bigenemyx = bigenemyx + (vx/mag) * speed * dt 
    bigenemyy = bigenemyy + (vy/mag) * speed * dt 
+0

謝謝,現在工作 – pighead10

+0

對你有好處:) –

1

你的問題是在最後兩行。無論如何,你都在朝着< 1,1的方向移動敵人。嘗試:

bigenemyx = bigenemyx + vx/mag*speed*dt 
bigenemyy = bigenemyy + vy/mag*speed*dt 

那麼,你是從V獲得方向