0

我有一艘宇宙飞船,它的底座上有两个推进器,一个在左边,一个在右边。

当右推进器打开时,它应该在加速时以抛物线向左推动宇宙飞船。左推进器则相反。

我该如何实施?

我在 box2d 上发现了一种叫做“弧度脉冲”的东西,这能行吗?

我还希望物理上稍微反转正确的推力(有点像那些只有一个按钮的廉价遥控车之一),但前提是在之前的一定时间内使用另一个推进器。

任何库的工作示例(或指向正确方向的东西)就足够了。

4

1 回答 1

1

当你的火箭偏离中心并且只有一枚火时,你正在给你的船提供扭矩。为了模拟这一点,您需要将火箭的推力分成两个部分。第一个推动你的船向前(在它面对的方向),第二个增加你的旋转速度。例子:

pos_x,pos_y - position
vel_x,vel_y - velocity
angle - angle where ship is facing in deg
angle_vel - speed of rotation in deg/s
thrust - how much to add to speed
torque - how much to add to angle
thruster_left, thruster_right - boolean, true if left or right truster is firing

function love.update(dt)
    if thruster_left then
        angle_vel=angle_vel+dt*torque
    end
    if thruster_right then
        angle_vel=angle_vel-dt*torque
    end
    angle=angle+angle_vel
    vel_x=vel_x+thrust*math.sin(math.rad(angle))*dt
    vel_y=vel_y-thrust*math.cos(math.rad(angle))*dt
    pos_x=pos_x+vel_x*dt
    pos_y=pos_y+vel_y*dt
end
于 2014-12-14T13:06:36.940 回答