Здравствуйте, Dinozavric, Вы писали:
D>Народ, нужно сделать прогу, которая имитирует стыковку двух космических кораблей. Управление только "Назад-вперед курсором", что как бы больше-меньше подача газа...
D>Две точечки, одна вот так подлетает к другой... если скорость большая. то должна выскочить ошибка -типа какстрофа... удачно- поздравление.
D>Если кто подскажет — спаибо! Кто сделает — пузырь выкачу!
Спасибо! (Питер)
Управление типа "назад-вперед курсом" придется самому делать, а ракеты получай
procedure TForm1.Button1Click(Sender: TObject);
var
myRocket1 : TRect;
myRocket2 : TRect;
bBaBah : boolean;
nSleep : integer;
begin
with myRocket1 do
begin
Left := 50;
Top := 50;
Right := 70;
Bottom := 60;
end;
with myRocket2 do
begin
Left := 150;
Top := 40;
Right := 200;
Bottom := 70;
end;
Canvas.Brush.Color := clRed;
Canvas.Rectangle(myRocket1);
Canvas.Brush.Color := clBlack;
Canvas.Rectangle(myRocket2);
bBaBah := false;
Randomize;
while not bBaBah do
begin
nSleep := Random(499) + 1;
Label1.Caption := 'Current speed is about ' + IntToStr(Round(1000/nSleep)) + ' pixel/sec';
Sleep(nSleep);
Inc(myRocket1.Left);
Inc(myRocket1.Right);
Dec(myRocket2.Left);
Dec(myRocket2.Right);
Form1.Repaint;
Canvas.Brush.Color := clRed;
Canvas.Rectangle(myRocket1);
Canvas.Brush.Color := clBlack;
Canvas.Rectangle(myRocket2);
bBaBah := (myRocket1.Right = myRocket2.Left);
Application.ProcessMessages;
end;
ShowMessage('Ba-bah!!!');
end;
... << RSDN@Home 1.1.0 stable >>