begin driver:=detect; mode:=detect; initgraph(driver,mode,'c:\bp\bgi'); moveto(400,280); for i:=1 to 200 do begin moverel(1,1); setcolor(3); samolet; Delay(3000); setcolor(0); samolet; end;
readln; end.
volvo
18.10.2006 0:47
Чтобы ОНО "летело" по синусоиде - не привязывайся к текущим координатам... Сделай вывод самолета относительно какой-то точки:
теперь, если ты в основном цикле будешь присваивать X и Y значения, которые образуют синусоиду, и передавать их в процедуру - то и самолет твой будет тоже лететь по синусоиде...
Как-то так:
for X:=1to200dobegin
Y := (GetMaxY div2) + Trunc(100 * sin(X * (Pi/200)));
setcolor(3); samolet(X, Y);
Delay(3000);
setcolor(0); samolet(X, Y);
end;
(не тестировал, но работать вроде как должно...)
numb86
18.10.2006 1:01
спасибо большое попробую так сделать.
numb86
18.10.2006 1:46
А можно еще кое что спросить.Как нибудь возможно сделать так чтобы самолет во время движения менял положение в пространстве в зависимости от места синусоиды(чтобы само изображение самолета меняло угол наклона)?
volvo
18.10.2006 21:27
Цитата
чтобы само изображение самолета меняло угол наклона
тебе надо передавать текущее положение самолета на оси OX (а если ты сделал так, как я тебе предлагал - у тебя весь путь по OX будет соответствовать 180 градусам, т.е. одному периоду синусоиды) в процедуру отрисовки, и в зависимости от него рисовать самолет с заданным наклоном (используя Sin/Cos, а не только Line)
numb86
22.10.2006 3:55
А нельзя ли примерчик хотя бы насчет одной линии а то уменя чтото не получается.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.