改变物体(汽车)的速度。

我需要在更改汽车的旋转角度后改变其速度。

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)的速度。但当我尝试增加速度时,它只是改变了旋转并将其破坏。

点赞
用户221509
用户221509

需要做的改动非常简单:只需通过汽车速度来缩放 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语法糖)。有些人认为这样更易读。以上代码可以写成:

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:不要忘记减速汽车;)

2013-05-30 13:36:35