Толкая космический корабль
У меня есть космический корабль с двумя движителями на его базе, один слева и один справа.
Когда правое подруливающее устройство включено, оно должно толкать космический корабль по параболической кривой влево, когда он ускоряется. и реверс для левого двигателя.
Как мне это реализовать?
Я нашел что-то под названием "импульс радиана" на box2d, это сделало бы работу?
Я также хотел бы, чтобы физика немного изменила правильную тягу (немного похоже на один из тех дешевых радиоуправляемых автомобилей с одной кнопкой), но только в том случае, если другой двигатель использовался в течение определенного периода времени до этого.
Рабочего примера (или чего-то, указывающего в правильном направлении) с любой библиотекой будет достаточно.
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