Hallo,
Ich versuche ein Programm zu erstellen in dem man ein Quadrat steuert und ein anderes quadrat flüchtet
das flüchten habe ich erreicht durch einen zufallsgenerator und folgenden quelltext:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
zufall:=random(4);
if Zufall = 0
then inc(JagdX,10);
if Zufall = 1
then dec(JagdX,10);
if Zufall = 2
then inc(JagdY,10);
if Zufall = 3
then dec(JagdY,10);
Hast du da mal mit einer For-Schleife versucht?
Hier kannst du auch eine Case-Anweisung benutzen
Delphi-Quellcode:
case random(4)
of
0: inc(JagdX,10);
1:
dec(JagdX,10);
2: inc(JagdY,10);
3:
dec(JagdY,10);
end;
und meine Lösung dafür das es die Ränder nicht überschreitet is auch eher arm
Delphi-Quellcode:
If
(JagdX + 50 > 778)
then dec(JagdX,20);
If
(Jagdy + 50 > 470)
then dec(Jagdy,20);
if
(JagdX < 5)
then inc(JagdX,20);
If
(JagdY < 7)
then inc(Jagdy,20);
end;
hat da eienr noch ne bessere idee?
Wofür steht die Zahl "778"? Ich nehme die Breite des Forumlars? Schreib dies:
Delphi-Quellcode:
If
(JagdX + 50 > form1.clientwidth)
then dec(JagdX,20);
Wenn du magst, kannst du ja deinen gesamten Code anhängen, dann können wir das genauer ansehen.