让一个观点随着另一个观点而来。

我正在编写一个非常快速的小游戏,但我没有任何矢量实现。这是我拥有的代码:

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 需要跟随 man,但 bigenemy 会突然消失。我匆忙地编写了这段代码,显然对其中的数学不太熟悉,感谢任何帮助-如果我没有思考清楚,我向您道歉,我没有遵循“速度越快动作越小”的原则!

点赞
用户847795
用户847795

你的问题在最后两行。无论如何,你都把敌人向<1,1>的方向移动。尝试以下代码:

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

所以你应该从变量v中获取方向。

2012-05-22 18:11:01
用户1182653
用户1182653

好的,你在所有方向上都使用了 mag 值,这样不好。请尝试使用以下代码:

    if(mag < 0.0001): mag = 1
    bigenemyx = bigenemyx + (vx/mag) * speed * dt
    bigenemyy = bigenemyy + (vy/mag) * speed * dt
2012-05-22 18:11:55