Einzelnen Beitrag anzeigen

Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#4

Re: DelphiX: Durch Delay bewegen sich die Figuren nicht

  Alt 10. Sep 2004, 09:35
Zitat von Spider:
Sleep kann ich nicht benutzen, da sonst das genze programm einschläft.
Ich denke, Delay wird die gleichen Auswirkungen haben.

Eine Sache, die man grundsätzlich bei der Programmierung von Spielen verinnerlichen muß ist, dass man nirgends irgendwelche Wartefunktionen einbaut.

Dies wird in der Spieleprogrammierung alles über Schleifen geregelt - das ist zwar recht aufwändig, verhindert aber, dass durch "Warteschleifen" andere Gameaktionen behindert werden. Hierbei ist dann auch die Performance des Rechners zu beachten, die z.B. durch die FPS ausgeglichen wird.

Wobei ich mit Schleifen jetzt keine For Next-Schleifen meine, sondern Konstrukte wie z.B.

Delphi-Quellcode:
iDelay=100*Ausgleichswert;
iCounter:=0;

und dann hast Du irgendwo

inc (iCounter);
if iCounter=iDelay then
begin
      Macheirgendwas(z.B. Sprite bewegen);
      iCounter:=0;
end;
Wichtig ist, den Fluss der sogenannten "Gameloop" nicht zu stören.

Delphi-Quellcode:
While bQuit<>true do
begin
     BewegeGegner;
     BewegePlayer;
     etc.
end;

Gruß Igotcha
  Mit Zitat antworten Zitat