Einzelnen Beitrag anzeigen

rotte

Registriert seit: 21. Mai 2009
9 Beiträge
 
#1

Berechnungszeit zu lang. Optimierung??

  Alt 4. Jul 2009, 20:26
Hi,

ich arbeite gerade an einem Programm, dass dem alten Spiel "Snake" ähneln soll. Klick
Es läuft soweit eig alles, bis auf eine Sache. Ich hoffe ihr könnt mir dabei helfen.

Während des Spiels werden immer wieder 'Essens-Objekte' erstellt,
durch welche die Schlange eben wachsen kann. Für die positionierung dieser Elemente
müssen bestimmte Kriterien erfüllt sein: Erstens darf die Position nicht x > 20 und y > 20 betragen,
da das Essen sonst außerhalb des Spielfeldes liegt. Zweitens muss jede Positionsangabe
durch 10 teilbar sein, da sich die Schlange in 10er px Schritten auf der Form bewegt.
(Anderst habe ich es nicht hinbekommen.)

Hier mal meine Funktion:
Delphi-Quellcode:
function throwFood():boolean;
var x,y:integer;
begin
  repeat
   randomize;
   x:=0; y:=0;
   x := random(200);
   y := random(200);
  until (x > 20) and (y > 20) and (x mod 10 = 0) and (y mod 10 = 0);

 Form1.ShapeFood.Left := x;
 Form1.ShapeFood.Top := y;
 foodposx := x;
 foodposy := y;
end;
Die Berechnung von diesen Koordinaten dauert einfach viel zu lange,
sodass das Spiel nicht wirklich dynamisch wirkt.

Gibt es eine Möglichkeit die Berechnungszeit zu verkürzen?

mfg. rotte
  Mit Zitat antworten Zitat