重点说明另一点

时间:2012-05-22 18:05:58

标签: vector lua love2d

我正在写一个非常快速的迷你游戏,我没有任何矢量实现。这就是我所拥有的:

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 个答案:

答案 0 :(得分:2)

嗯,你在所有方向都使用'mag'值 - 这不好。尝试

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

答案 1 :(得分:1)

你的问题在最后两行。你正朝着&lt; 1,1&gt;的方向移动敌人。无论。尝试:

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

所以你从v。

那里得到指示