Aktuelle Zeit: 09.01.2025, 11:16

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: "mehrseitige" GUI [gelöst]
BeitragVerfasst: 11.05.2007, 08:20 
Offline

Registriert: 11.05.2007, 07:10
Beiträge: 2
Wohnort: München
Hallo,

Irrlicht-Anfänger und VB.NET-Umsteiger (von VB6) benötigt Eure Hilfe bei der Erstellung einer IrrlichtGUI:

Ich arbeiten mit dem Irrlicht.NET CP Wrapper in VB2005 und habe versucht, das "Tutorial 5: User Interface" anzupassen.

Ich möchte ein mehrseitiges Spielmenü erstellen: Wenn man im Hauptmenü z. B. auf Optionen klickt, sollen die Buttons der ersten Seite verschwinden, und andere Buttons angezeigt werden. Hierzu habe ich versucht (ein neues?) GUIEnironment definiert, an dem die Buttons der zweiten Seite sind.

Wenn ich das Programm laufen lasse, sehe ich die Buttons der zweiten Seite im Vordergrund (halbtransparent), die Buttons der ersten Seite scheinen von hinten durch.

Kann mir jemand auf die Sprünge helfen?

Danke,
Tristan78

Code:

...
Dim mmenu As GUIEnvironment = device.GUIEnvironment
Dim opmenu As GUIEnvironment = device.GUIEnvironment
....
Dim img As GUIElement = mmenu.AddImage(driver.GetTexture("irrlichtlogo.jpg"), New Position2D(10, 10), False, mmenu.RootElement, 0, "")
mmenu.AddButton(New Rect(New Position2D(270, 110), New Position2D(530, 170)), mmenu.RootElement, 101, "Neues Spiel")
mmenu.AddButton(New Rect(New Position2D(270, 190), New Position2D(530, 250)), mmenu.RootElement, 102, "Laden")
mmenu.AddButton(New Rect(New Position2D(270, 270), New Position2D(530, 330)), mmenu.RootElement, 103, "Speichern")
mmenu.AddButton(New Rect(New Position2D(270, 350), New Position2D(530, 410)), mmenu.RootElement, 104, "Optionen")
mmenu.AddButton(New Rect(New Position2D(270, 430), New Position2D(530, 490)), mmenu.RootElement, 105, "Credits")
mmenu.AddButton(New Rect(New Position2D(270, 510), New Position2D(530, 570)), mmenu.RootElement, 106, "Beenden")
...
Dim opimg As GUIElement = opmenu.AddImage(driver.GetTexture("irrlichtlogo.jpg"), New Position2D(10, 10), False, opmenu.RootElement, 0, "")
opmenu.AddButton(New Rect(New Position2D(270, 110), New Position2D(530, 170)), opmenu.RootElement, 107, "VideoTreiber")
opmenu.AddButton(New Rect(New Position2D(270, 190), New Position2D(530, 250)), opmenu.RootElement, 108, "Auflösung")
opmenu.AddButton(New Rect(New Position2D(270, 270), New Position2D(530, 330)), opmenu.RootElement, 109, "Lautstärke")
opmenu.AddButton(New Rect(New Position2D(270, 350), New Position2D(530, 410)), opmenu.RootElement, 110, "Tastenbelegung")
opmenu.AddButton(New Rect(New Position2D(270, 430), New Position2D(530, 490)), opmenu.RootElement, 111, "Joystick")
opmenu.AddButton(New Rect(New Position2D(270, 510), New Position2D(530, 570)), opmenu.RootElement, 112, "zurück")
...
[/code]


Zuletzt geändert von tristan78 am 12.05.2007, 15:12, insgesamt 1-mal geändert.

Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 11.05.2007, 14:25 
Offline
Moderator
Benutzeravatar

Registriert: 11.03.2007, 20:25
Beiträge: 556
Wohnort: Frankfurt/Main
dein ansatz funktioniert nicht, weil device.guienvironment immer das gleiche zurückgibt und kein neues guienvironment-objekt erstellt.

eine möglichkeit wäre, deine menüs in dateien zu speichern und sie dann zu laden. entweder du erstellst sie per hand oder mit dem gui-editor der bei irrlicht dabei ist (kann noch nicht so viel).

Code:
GUIEnvironment.loadGUI("menu.xml")
...
GUIEnvironment.clear() // alle elemente löschen
GUIEnvironment.loadGUI("submenu.xml") // untermenü laden


die entsprechenden ladeevorgänge musst du halt durch deinen eventreceiver auf knopfdruck regeln.


Nach oben
 Profil  
 
 Betreff des Beitrags: "mehrseitige" GUI [gelöst]
BeitragVerfasst: 12.05.2007, 15:12 
Offline

Registriert: 11.05.2007, 07:10
Beiträge: 2
Wohnort: München
Hallo frodenius,

danke für die schnelle Hilfe. Nun klappt es!

Der Wrapper unterstützte die Methoden .clear und .loadgui noch nicht. Nachdem ich ihn entsprechend erweitert habe (kopierarbeit in C++), kann ich meine ersten Irrlicht-Versuche weiterhin mit VB.NET programmieren :)

Gruß,
Tristan78


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de