1

彼の回転を変更した後、オブジェクトの速度を変更する必要があります。

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)。しかし、速度を追加しようとすると、回転が変化して台無しになります..

4

1 に答える 1

2

必要な変更は非常に簡単です。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 では( syntactic sugarcar['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-30T13:36:35.853 に答える