DX7 Buttons

galdasc

Erfahrenes Mitglied
Hey

Ich habe gerade angefangen mich mit Direct Draw 7 zu beschäftigen. Bis jetzt versteh ich einigermaßen alles, auch wie man Bilder auf den Bildschirm bekommt. Jetzt will ich versuchen, ein "Spiel" zu programmieren (ja, ich weiß, Spiele + VB = Mist; soll aber kein komplexes Spiel werden...). Für ein Spiel braucht man ein Menü, und zum Spielen selbst braucht man Buttons (sowas wie "Bauen", "Gehen",...). Bloß wie mache ich das, dass mein Programm auf einen Klick auf einen Button reagiert Darstellen von Bildern und Menü geht einwandfrei,bloß Buttons... ;-)


Thanks

-/bye\-
 
Ich würde in der Doku schauen ob es in DirectX (nicht nur DirectDraw) eine Möglichkeit gibt Buttons einzubinden, wenn nicht selber basteln:
* Grafik auf den Bildschirm malen
* Mausklicks abfangen
* Bei Klick prüfen ob die Koordinaten innerhalb des Buttons liegen
* wenn ja, Code ausführen der dem Button zugeordnet ist.

Wenn du einen Effekt als Reaktion auf Klicks oder überfahren mit der Maus zeigen willst kannst du das Bild des Buttons kurz tauschen.

Am einfachsten geht das mit rechteckigen Buttons:
wenn (KlickX >= ButtonLinkerRand und KlickX <= ButtonLinkerRand + ButtonBreite) und (KlickY >= ButtonObererRand und KlickY <= ButtonObererRand + ButtonHöhe)

Du kannst natürlich auch Kreise, Ellipsen und sonstiges verwenden, nur musst du dann die Koordinatenüberprüfung anpassen.
 
ok danke!
So hab ich das schonmal versucht, hat auch ein bisschen hingehauen ;-)

Aber ich bin mir noch nicht ganz sicher, wie ich die Koordinaten der Bilder speichern soll, ob ich sie in einem array speichern soll oder jedesmal aus einer Datei auslesen soll, um somit Speicher zu sparen

danke nochmal!
 
Du brauchst die Werte ja jedesmal wenn neu gezeichnet wird, was in einem Spiel ja relativ oft in der Sekunde der Fall ist. Wenn du sie also wirklich jedesmal neu einlesen musst wird das sehr, sehr langsam.

Im Vergleich zu den Daten die in einem grafischen Spiel allein schon durch die Bilder anfallen sind aber die paar Koordinaten fast nichts.
 
Zurück