AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Hauptschleife in Spielen mit Timer oder While-Schleife?
Thema durchsuchen
Ansicht
Themen-Optionen

Hauptschleife in Spielen mit Timer oder While-Schleife?

Ein Thema von Lukaro · begonnen am 5. Jun 2005 · letzter Beitrag vom 6. Jun 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Lukaro
Lukaro

Registriert seit: 24. Mai 2005
Ort: NRW->OWL
16 Beiträge
 
Delphi 2005 Personal
 
#1

Hauptschleife in Spielen mit Timer oder While-Schleife?

  Alt 5. Jun 2005, 21:42
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.

lG, Lukaro
A Programer is just a Tool that converts Coffein into Code.
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#2

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

  Alt 5. Jun 2005, 21:49
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?)
  Mit Zitat antworten Zitat
Benutzerbild von Lukaro
Lukaro

Registriert seit: 24. Mai 2005
Ort: NRW->OWL
16 Beiträge
 
Delphi 2005 Personal
 
#3

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

  Alt 5. Jun 2005, 21:54
"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
A Programer is just a Tool that converts Coffein into Code.
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#4

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

  Alt 5. Jun 2005, 22:04
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

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.
  Mit Zitat antworten Zitat
PierreB
(Gast)

n/a Beiträge
 
#5

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

  Alt 5. Jun 2005, 22:06
Mit Sleep() friert die ganze Anwendung ein, daher nicht unbedingt zu empfehlen.
Delay() sollte was für dich sein.
  Mit Zitat antworten Zitat
Benutzerbild von Lukaro
Lukaro

Registriert seit: 24. Mai 2005
Ort: NRW->OWL
16 Beiträge
 
Delphi 2005 Personal
 
#6

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

  Alt 5. Jun 2005, 22:08
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

Bis Morgen, Lukaro
A Programer is just a Tool that converts Coffein into Code.
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#7

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

  Alt 5. Jun 2005, 22:08
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
  Mit Zitat antworten Zitat
PierreB
(Gast)

n/a Beiträge
 
#8

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

  Alt 5. Jun 2005, 22:11
Delphi-PRAXiS Suchfunktion nutzen:
http://www.delphipraxis.net/internal...ighlight=delay

Du startest sie dann mit Delay(100) (zum Beispiel).
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#9

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

  Alt 5. Jun 2005, 22:13
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
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#10

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

  Alt 5. Jun 2005, 22:51
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.
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz