![]() |
Hauptschleife in Spielen mit Timer oder While-Schleife?
Hi Leute!
Ich bin dabei eine Fussball-Simulation auf Textbasis zu schreiben (Ähnlich dem ![]() Ich habe schon eine Hauptschleife, und starte diese mangelns Erfahrung und Hilfe jetzt mit dem normalen Timer. Allerdings schafft dieser ja bekannterweise nur 16ms ~ 62FPS. Etwas schneller könnte es aber, besonders beim schnelldurchlauf, schon sein. Ich habe keine Schleife benutzt, da ich dachte/denke, dass das Programm nicht unter Volllast laufen sollte. Muss es ja von der Berechnung ja auch überhaupt nicht. Meine Frage: Was soll ich machen? Mir den "QueryPerformanceCounter" noch mal angucken? Hab aber gehört, der sei auch sehr rechenintensiv und eventuell hardwaretechnisch nicht überall vorhanden? Eine "while" irgendwie auf 200FPS oder so limitieren? (wie macht z.B. CS das eigentlich?) Jemand im Chat bezeichnete dies als ![]() Naja, ich hoffe mal, hier hat irgendjemand schon mal ein Spiel programmiert oder mehr der Delphi-Materie im Hinterkopf als ich. :lol: lG, Lukaro |
Re: Hauptschleife in Spielen mit Timer oder While-Schleife?
hm..
im zweifelsfalle würde ich eine While - Schleife verwenden und die mit sleep() verlangsamen. Das geht aber ziemlich auf die Performance. (was hat das denn jetzt mit Polling zu tun?) |
Re: Hauptschleife in Spielen mit Timer oder While-Schleife?
"Beim Polling fragt der eine Parter periodisch ab, ob der andere etwas senden will oder empfangen kann"
Naja, eine while-schleife ist ja auch eine Art periodischer Abfrage. Muss ja nicht nur im Netzwerk gehen. Ist Sleep denn genau? Und "schläft" das Prog da wirklich oder verbraucht es die ganze Zeit Ressourcen? Lukaro |
Re: Hauptschleife in Spielen mit Timer oder While-Schleife?
Zitat:
Delphi-Quellcode:
dann wird die Ausführung des Codes für 100 ms unterbrochen.
sleep(100)
Allerdings ist die Prozessorauslastung durch Sleep sehr hoch. Aber Schleifen treiben generell den Resourcenverbrauch hoch (relativ hoch). Du brauchst also so oder so eine Schleife. Allerdings... wie gesagt, ich begreif noch nicht, worauf du hinausmöchtest. |
Re: Hauptschleife in Spielen mit Timer oder While-Schleife?
Mit Sleep() friert die ganze Anwendung ein, daher nicht unbedingt zu empfehlen.
Delay() sollte was für dich sein. ;) |
Re: Hauptschleife in Spielen mit Timer oder While-Schleife?
Zitat:
Bis Morgen, Lukaro |
Re: Hauptschleife in Spielen mit Timer oder While-Schleife?
Zitat:
|
Re: Hauptschleife in Spielen mit Timer oder While-Schleife?
Delphi-PRAXiS Suchfunktion nutzen:
![]() Du startest sie dann mit Delay(100) (zum Beispiel). |
Re: Hauptschleife in Spielen mit Timer oder While-Schleife?
Zitat:
@Lukaro: das müsste sein, was du suchst. mfg Daniel |
Re: Hauptschleife in Spielen mit Timer oder While-Schleife?
bei nem spiel ist ne endlosschleife eigentlich das richtige. wenn das system unbedingt weiterhin sauber multitasken muss, dann unterbrich die schleife regelmäßig um den anderen programmen rechenzeit abzugeben.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz