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