JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=5af89521e1de6b50e03100d91aa47ed8Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

ingame menüs

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Erni
Junior JLI'ler



Anmeldedatum: 29.10.2003
Beiträge: 54

Medaillen: Keine

BeitragVerfasst am: 18.11.2003, 21:53    Titel: ingame menüs Antworten mit Zitat

HI, kennt jemand irgendwelche tutorials über "wie mache ich game menüs" oder irgendwas was in die richtung geht? ich krieg so langsam von dies und jenem n plan, aber wie ich menüs incl buttons, scrolling text etc ins spiel bringe, weiss ich bisher nicht. Werden Menüs mit MFC in ein spiel gebracht oder is etwa jeder Button ein surface Shocked ? Ich stells mir nur so vor das man für n menü wohl ne eigene winproc schreiben muss, hach ich weiss auch nicht, kann mir da jemand weiterhelfen?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Cyianor
Super JLI'ler



Anmeldedatum: 23.12.2002
Beiträge: 452

Medaillen: Keine

BeitragVerfasst am: 19.11.2003, 10:09    Titel: Antworten mit Zitat

Ein Menü ist eigentlich auch nichts anderes als viele Surfaces. Zumindestens die wo du zum Beispiel bei C&C, Warcraft 3, Max Payne oder was du sonst noch so spielst, siehst. Eine eigene Callback-Funktion braucht ein Menü aber nicht. Du kannst dir ja verschiedene Renderstate definieren:

Code:
#define RS_MENUE 1
#define RS_GAME 2
#define RS_CREDITS 3
usw...


dann kannst du jedes mal beim Durchlaufen deiner Spielschleife abfragen:

z.B. es wurde ESC gedrückt:

Code:
if(KEYDOWN(VK_ESCAPE) && Renderstate == RS_GAME)
{
         Renderstate = RS_MENUE;
}
if(KEYDOWN(VK_ESCAPE) && Renderstate == RS_MENUE)
{
         PostQuitMessage(0);
}


Renderstate ist hierbei nur eine normale int Variable, der zu Beginn etwa der Wert RS_MENUE zugeteilt wird. Dann wird eben dein Menü gezeichnet und nicht das Spiel.

Hoffe du hast es verstanden.

Vision
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Erni
Junior JLI'ler



Anmeldedatum: 29.10.2003
Beiträge: 54

Medaillen: Keine

BeitragVerfasst am: 19.11.2003, 12:50    Titel: Antworten mit Zitat

ja danke, und wie stehts um die Funktionalität eines Menüs wie z.b. Scrollen von Text, switchen auf submenüs etc. . kann selbst der slider eines scrolling textes ein surface sein? gibts darüber kein buch oder tut...

gruss
ernie
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 19.11.2003, 13:30    Titel: Antworten mit Zitat

Ich hab mir da (wie für fast alles Rolling Eyes *gg*) ne kleine Klasse geschrieben.
Für die Menüpunkte verwende ich ganz gewöhnliche Surfaces und eine Scriptdatei, in der die Menüstruktur gespeichert ist. Bei MatrixProtector sah das mit der neuen Scriptengine so aus:
Zitat:
#Menümanager
§UNTERMENUE=string;
#
§ENDE=string;
#
UNTERMENUE=START;
UNTERMENUE=Neues Spiel;
ENDE=string;
UNTERMENUE=Credits;
ENDE=string;
UNTERMENUE=Beenden;
ENDE=string;
ENDE=string;

Mit jedem "UNTERMENUE" wird ein neues Untermenü mit dem Namen nach dem '=' geöffnet. Mit dem ENDE-Befehl wird dieses Menü abgeschlossen. Die darauffolgenden Untermenüpunkte sind dann eine Ebene höher.
Die Koordinaten der Menüsurfaces am Bildschirm werden mit hilfe der Breite und Höhe der Surfaces, dem Bereich in dem sie gezeichnet werden sollen und der Anzahl der Untermenüs gezeichnet.
Die ID der Menüsurfaces entspricht jeweils dem Menünamen im Script.
Bei einem Mausklick werden eben die Positionen verglichen bzw. die Markierung aktualisiert und der Menüpunkt bekommt die ID der aktuellen Markierung.
<edit>
Ein Tutorial zu dem Thema kenn ich nicht
</edit>
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Erni
Junior JLI'ler



Anmeldedatum: 29.10.2003
Beiträge: 54

Medaillen: Keine

BeitragVerfasst am: 19.11.2003, 14:40    Titel: Antworten mit Zitat

aha na ich beginne so langsam zu verstehen, aber alles mit surfaces zu machen ist das dann nich n heidenaufwand n menü zu kreieren? Embarassed

Als beispiel, die Gesamt Spieloberfläche ist 800x600 gross, menü wäre unten im spiel mit sagen wir 800x200.
Jetzt blitte ich als erstes meinen Menühramen an die gewünschte untere Position, dann blitte ich die buttons usw.
Doch was nun mit Hovereffekten wie: ein dunkler button wird erhellt wenn man drüberhovert. Müsste ich dann zu jedem Button einen hellen Button haben, der jedesmal ins menü geblittet wird, wenn mousexy auf die koordinaten des buttons zeigt?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Hasenfuß
Senior JLI'ler


Alter: 37
Anmeldedatum: 20.08.2002
Beiträge: 291

Medaillen: Keine

BeitragVerfasst am: 19.11.2003, 14:45    Titel: Antworten mit Zitat

Dann schreibst du dir halt eine Klasse für Buttons und eine für das Menü die die Buttons verwaltet. An den einzelnen Button können dann durch Funktionen Nachrichten geschickt werden wie:

Wenn der Mauszeiger innerhalb des Buttonrahmens ist => Button.SetActive(TRUE)

oder irgendwie sowas.

In der Menüklasse gibts halt dann eine große Renderfunktion die den Rahmen und alle Buttons zeichnet.[/code]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 19.11.2003, 14:58    Titel: Antworten mit Zitat

Wenn du Hovereffekte haben willst, kannst du das ja auch mit Alphaeffekten machen.
Du hast für den hervorgehobenen Menüpunkt eine Grafik und blittest dieses Surface eben dunkler oder mit dem Hintergrund geblendet Wink
Ich hab bisher immer eine Markierungsgrafik dafür verwendet, die dann eben über den entsprechenden Menüpunkt gezeichnet wird.
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum