Vector 提出一点,然后再提出另一点

Vector 提出一点,然后再提出另一点,vector,lua,love2d,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 =

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

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

大敌
需要跟随
<代码>大敌人刚刚从屏幕上消失。我已经匆匆忙忙地编写了这段代码,而且(显然)在这方面我对数学没有经验,谢谢你的帮助——如果我没有想清楚的话,我表示歉意,我真的没有坚持“多速度少匆忙”

您的问题在最后两行。无论发生什么情况,你都在把敌人推向前进的方向。尝试:

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

所以你是从v中得到方向的。

好吧,你在所有方向上都使用了“mag”值——这不好。试一试

    if(mag < 0.0001): mag = 1
    bigenemyx = bigenemyx + (vx/mag) * speed * dt
    bigenemyy = bigenemyy + (vy/mag) * speed * dt
if(mag<0.0001):mag=1
bigenemyx=bigenemyx+(vx/mag)*速度*dt
比根尼=比根尼+(vy/mag)*速度*dt