Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi DelphiX und Dialoge (https://www.delphipraxis.net/13797-delphix-und-dialoge.html)

Igotcha 26. Dez 2003 23:23


DelphiX und Dialoge
 
Hallo zusammen,

ich würde gerne wissen, wie man programmtechnisch am besten in einem Spiel grafische Dialoge realisiert.

Gesteuert wird das Spiel über eine Gameloop. Realisieren möchte ich z.B. folgendes:

1.) Infodialog (z.B. "Spiel start", "Level 1", etc), der eine feste Zeit angezeigt werden soll und danach an eine Position in der Gameloop springen soll,
2.) Fragedialog (z.B. "Möchten Sie das Spiel verlassen?"), der auf einen Klick auf JA-oder NEIN-Buttons reagieren soll und entsprechend fortfahren soll,
3.) "besondere Dialoge", in denen z.B. auf Festplattenzugriffe erfolgen sollen, um in diesem Dialog situationsabhängige Bilder zu laden.

Die Dialoge sollen natürlich auf Mausaktionen (selbstdefinierter Cursor mittels SpriteEngine) und ggf. auf Tasten reagieren können.

bei 1.) bereitet mir die Zeit Probleme - hier arbeite ich im Moment über einen Zähler, also CPU-abhängig,

bei 2.) bekomme ich den Dialog zumindest mit einer Bitmap und 2 Sprites als JA-und NEIN-Button hin, aber leider reagieren auch alle anderen (im "Hintergrund") angezeigten Sprites auf das Collision-Ereignis,

bei 3.) fehlt mir im Moment jeglicher Lösungsansatz, da neben den Problemen aus 2.) der Timer wegen der Cursorbewegungen laufen muß und somit die Dialog-Procedure bei jedem Timer-Event durchlaufen wird, in dem Filezugriffe erfolgen sollen.

Meine Gameloop ist wie folgt aufgebaut:

Mainloop:
doIntro
doGame
doQuit

in der procedure doGame existiert eine weitere Case-Loop mit:

GameLoop:
doInitGame
doNewgame
doMainGame
doEndGame
sdDialog1
sdDialog2

Gruß Kay


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