Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Hauptschleife in Spielen mit Timer oder While-Schleife? (https://www.delphipraxis.net/47058-hauptschleife-spielen-mit-timer-oder-while-schleife.html)

Lukaro 5. Jun 2005 22:42


Hauptschleife in Spielen mit Timer oder While-Schleife?
 
Hi Leute!
Ich bin dabei eine Fussball-Simulation auf Textbasis zu schreiben (Ähnlich dem Fussball Manager Textmodus).

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 Polling, ohne das gehts hier doch nicht, oder?


Naja, ich hoffe mal, hier hat irgendjemand schon mal ein Spiel programmiert oder mehr der Delphi-Materie im Hinterkopf als ich. :lol:

lG, Lukaro

Daniel G 5. Jun 2005 22:49

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?)

Lukaro 5. Jun 2005 22:54

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

Daniel G 5. Jun 2005 23:04

Re: Hauptschleife in Spielen mit Timer oder While-Schleife?
 
Zitat:

Zitat von Lukaro
Ist Sleep denn genau? Und "schläft" das Prog da wirklich oder verbraucht es die ganze Zeit Ressourcen?
Lukaro

Was heißt genau? Wenn du schreibst

Delphi-Quellcode:
sleep(100)
dann wird die Ausführung des Codes für 100 ms unterbrochen.

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.

PierreB 5. Jun 2005 23:06

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. ;)

Lukaro 5. Jun 2005 23:08

Re: Hauptschleife in Spielen mit Timer oder While-Schleife?
 
Zitat:

Zitat von Daniel G
Allerdings... wie gesagt, ich begreif noch nicht, worauf du hinausmöchtest.

Ich möchte eine Funktion jede 5ms aufrufen, scheitere aber an dem ungenauen Timer und suche Alternativen :wink:

Bis Morgen, Lukaro

Daniel G 5. Jun 2005 23:08

Re: Hauptschleife in Spielen mit Timer oder While-Schleife?
 
Zitat:

Zitat von PierreB
Mit Sleep() friert die ganze Anwendung ein, daher nicht unbedingt zu empfehlen.
Delay() sollte was für dich sein. ;)

Also mit Delay kann Delphi 5 nix anfangen

PierreB 5. Jun 2005 23:11

Re: Hauptschleife in Spielen mit Timer oder While-Schleife?
 
Delphi-PRAXiS Suchfunktion nutzen:
http://www.delphipraxis.net/internal...ighlight=delay

Du startest sie dann mit Delay(100) (zum Beispiel).

Daniel G 5. Jun 2005 23:13

Re: Hauptschleife in Spielen mit Timer oder While-Schleife?
 
Zitat:

Zitat von PierreB
Delphi-PRAXiS Suchfunktion nutzen:
http://www.delphipraxis.net/internal...ighlight=delay

Du startest sie dann mit Delay(100) (zum Beispiel).

Hrmpf... hättest sagen müssen :?

@Lukaro: das müsste sein, was du suchst.

mfg
Daniel

nailor 5. Jun 2005 23:51

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.
Seite 1 von 2  1 2      

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