【问题标题】:Change the object (car) speed改变物体(汽车)的速度
【发布时间】:2013-05-26 01:30:07
【问题描述】:

在我改变他的旋转后,我需要改变物体的速度。

function love.update(dt)

if car['speed'] > 0 then
    car['x'] = car['x'] + math.cos(car['angle'])
    car['y'] = car['y'] + math.sin(car['angle'])
end

if love.keyboard.isDown("w") then
    car['speed'] = car['speed'] + dt
end

if love.keyboard.isDown("a") then
    car['angle'] = car['angle'] - (1 * dt)
end

if love.keyboard.isDown("d") then
    car['angle'] = car['angle'] + (1 * dt)
end
end

在我改变“w”中的速度后,我希望它改变汽车的速度(x,y)。 但是当我尝试增加速度时,它只是改变了旋转并破坏了它..

【问题讨论】:

    标签: function math lua love2d


    【解决方案1】:

    所需的更改非常简单:只需按车速缩放cossin

    if car['speed'] > 0 then
        car['x'] = car['x'] + car['speed'] * math.cos(car['angle'])
        car['y'] = car['y'] + car['speed'] * math.sin(car['angle'])
    end
    

    另外,在 Lua 中,car['speed'] 等价于 car.speed (syntactic sugar)。有些人觉得这更容易阅读。上面的代码可以写成:

    if car.speed > 0 then
        car.x = car.x + car.speed * math.cos(car.angle)
        car.y = car.y + car.speed * math.sin(car.angle)
    end
    

    PS:别忘了放慢车速;)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-10
      • 1970-01-01
      • 2020-03-29
      • 2019-06-13
      • 2011-09-11
      相关资源
      最近更新 更多