Конференция "Игры" » реализация поведения вертолета
 
  • @!!ex © (16.01.08 16:00) [0]
    Хочеться сделать что-то типа поведения вертолета в GTA:VC, Operation Flashpoint.
    Тоесть нечто не слишком сложное для игрока.
    Сделал так:
         if Keys.KeyPressed(KP_FORWARD) then begin
           Accelerate:=Accelerate+dt/1000*100;
         end
         else
         if Keys.KeyPressed(KP_BACKWARD) or (Speed.Z>10) then begin
           Accelerate:=Accelerate-dt/1000*100;
         end
         else begin
           if Accelerate>0 then
             Accelerate:=Accelerate-dt/1000*40
           else
             Accelerate:=Accelerate+dt/1000*40;
         end;

         if Accelerate>100 then
           Accelerate:=100;

         if Accelerate<-50 then
           Accelerate:=-50;



    Accelerate - скорость вращений винтов. Больше нуля - значит взлетает, меньше - садится.

    Speed.Z:=Speed.Z + (90-Value)/90 * Accelerate*dt/1000-30*dt/1000;
       if Speed.Z>50 then
         Speed.Z:=50;
       Speed.X := Speed.X + sin(Direction.Y*pi/180)*(Value)/90 * Accelerate*dt/1000;
       Speed.Y := Speed.Y + cos(Direction.Y*pi/180)*(Value)/90 * Accelerate*dt/1000;

       if MagnitudeVector(Speed)>200 then
         Speed:=ScaleVector(NormalizeVector(Speed),200);
       

       Position:=AddVector(Position,ScaleVector(Speed,dt/1000));



    Value - угол наклона вертолета. от -60 до 60. 0 - паралельно земле.
    Может у кого есть идеи, как улучшить поведение.
    Понятно, что без теста это сложно сказать, но всеже, возможно кто-то решал сходные задачи.
  • ANTPro © (17.01.08 16:01) [1]
    Мои идеи по поводу управления:
    Up, Down — регулирование наклона вертушки
    Left, Right — регулирование скорости поворота
    Q,A — вверх, вниз(скорость вращения движка)
    ---
    Все движение с инерцией.
    Авторавновесие — т.е. возврашение положения в горизонтальное и на определенной высоте… ну и т.д.
    Если хочешь сделать удобно, то лучше демку замутить. Качественное управление — это сложно
  • ketmar © (17.01.08 16:29) [2]
    собственно, если тебе не нужен точный эмулятор физики, то таки да — делаешь демку на простейших формулах, и дальше точишь её напильником, пока не почуешь, что «вот оно, чего хотелось».

    имо, так будет проще всего.
 
Конференция "Игры" » реализация поведения вертолета
Есть новые Нет новых   [134431   +10][b:0][p:0.001]