Вот пытаюсь сделать сабж.
Есть двухмерный ландшафт в виде черной кривой, есть массив высот из этого битмапа.
У апарата есть координаты х,у, вертикальные скорость sy и ускорение ay. На него давит притяжение g=3. Ну и еще у него есть двигатели которые дают вертикальное ускорение e=0..10.
Задача: написать функцию которой передаются: y,sy а возвращает она нужную мощность е.
Апарат должен плыть над землей на заданой высоте, ландашфт холмистый довольно...
Пока апарат у меня напоминает мячик, который падает с горы и начинает прыгать по синусоиде((
Ктонить делал чтото подобное?
Вот код, не бейте ногами плз:
e:=0;
if tank.y-land[tank.x]<4 then Inc(e,Abs(tank.y-land[tank.x])) else if tank.y-land[tank.x]>4 then Dec(e,(tank.y-land[tank.x]));
if tank.sy<0 then if tank.sy<3 then inc(e,3-tank.sy);
if tank.sy>0 then if tank.sy>3 then dec(e,tank.sy+3);
if tank.y-land[tank.x]=4 then ayy:=2;
if e<0 then e:=0;if e>10 then e:=10;
tank.ay:=e-2;
tank.sy:=tank.sy+tank.ay;
tank.y:=tank.y+tank.sy;
собсна tank это и есть апарат
если надо могу весь исходник с визуализацией выложить