Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi [Spieleprogrammierung] Spielschleife (https://www.delphipraxis.net/69478-%5Bspieleprogrammierung%5D-spielschleife.html)

chaoslion 15. Mai 2006 19:46


[Spieleprogrammierung] Spielschleife
 
Hallo

Ich hab mal eine Frage bzgl. Spieleprogrammierung, speziell zur Spielschleife.
Also ich hab einen Timer der zum abfragen der Tasten und zum zeichnen der
Objekte dient. Nun möchte ich aber irgendwie ein Eventsystem auf die Beine stellen.
Es soll also zb. wenn ich die Maustaste drücke, ein Event ausgelöst werden,
das dann ein Schusssound abspielt. Zweiten wollte ich gerne wissen,
ob es sinnvoll ist, 2 Schleifen laufen zu lassen, eine Spielschleife und
eine welche die KI steuert??

EDatabaseError 15. Mai 2006 20:07

Re: [Spieleprogrammierung] Spielschleife
 
Zitat:

Zitat von chaoslion
Hallo

Ich hab mal eine Frage bzgl. Spieleprogrammierung, speziell zur Spielschleife.
Also ich hab einen Timer der zum abfragen der Tasten und zum zeichnen der
Objekte dient. Nun möchte ich aber irgendwie ein Eventsystem auf die Beine stellen.
Es soll also zb. wenn ich die Maustaste drücke, ein Event ausgelöst werden,
das dann ein Schusssound abspielt. Zweiten wollte ich gerne wissen,
ob es sinnvoll ist, 2 Schleifen laufen zu lassen, eine Spielschleife und
eine welche die KI steuert??

Wiso fragst du die Tasten nicht unter OnKeyDown / OnKeyPress ab :wiejetzt: Für die Maus OnMouseDown

Sound ist genug im Board

Phobeus 16. Mai 2006 21:34

Re: [Spieleprogrammierung] Spielschleife
 
Was wirklich sinnvoll ist, hängt ein wenig davon ab, was Du machen willst. Aber wie EDatabaseError schon sagt, würde ich auch die Events der VCL dafür nehmen. In jedem Fall sollte die Berechnung von Tätigkeiten zeitgesteuert (Time based) erfolgen, damit es sich halt überall wirklich gleich schnell bewegt. Insbesondere dann, wenn Du im Rahmen eines Spieles sowieso versucht soviele Bilder über den Jordan zu heizen, wie die GPU her gibt. Die Bewegung und Berechung muss also zeitgesteuert laufen und schön wäre es halt auch, wenn das Bild dazu auch noch paßt. Events wie Tastatur, Netzwerk etc. sollten immer sofort verarbeitet werden und nicht zeitgesteuert. Berechungen (z.B. die KI) in Threads auszulagern kann sinnvoll sein, wird es in den meisten Fällen jedoch nicht sein. Dies lohnt sich nur dann wirklich, wenn man Ressourcen parallel nutzen möchte. Insbesondere bei Spielen ist dies eher nicht der Fall, da irgend etwas in der Loop gerade verarbeitet wird. Bilder oder Schritte zu Berechnen lohnt sich nur dann, wenn sie auch gebraucht werden. Läuft dein KI-Thread die ganze Zeit ab und die Bilder kommen nicht nach, ist dies genauso blödsinnig wie anderes herum. Mehr Sinn macht es daher, wenn dies beides hintereinander geschieht und die Aktionen zeitlich gesteuert sind. 200ms später muss nicht nur 200ms späteres Bild ergeben, sondern auch 200ms "weitergedacht" haben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:43 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