Last ned demoen og kildekode
TILBAKE TIL TUTORIAL INDEX
En grei GUI er obligatorisk for nesten alle PC-spill i disse dager. Jeg husker hva jeg big deal det var da den opprinnelige Unreal spillet hadde en innebygd nettverk spillet leseren; til det punktet, de fleste spill brukt et eksternt program for å finne og lansering nettverksspill.
Irrlicht har en meget dyktig GUI system som inngår i den, sammen med en enkel GUI editor. Vi vil bruke denne editoren første til å lage et enkelt brukergrensesnitt.
Kjør GUIEditor.
exe søknad fra Irrlicht bin \\ Win32-Visual Studio-mappen i Irrlicht SDK. Ved å høyreklikke i vinduet du kan deretter legge GUI-kontroller.
I skjermbildet nedenfor har vi lagt 4 knapper.
I GUI redigeringsvinduet sørge for at hver knapp har en unik ID, som kan endres i kategorien Element. Høyreklikk i redigeringsvinduet igjen, og klikk på Lagre. Du vil nå ha en fil som heter guiText.xml.
IrrlichtEngineManager.h /IrrlichtEngineManager.
cpp
For enkel vil vi legge til en funksjon på IrrlichtEngineManager kalt GetGUIEnvironment at avkastningen pekeren til Irrlicht GUI miljø
Vi trenger. også å tegne GUI miljø i gjengi loop. Vi legger et kall til IGUIEnvironment drawAll funksjon etter scenen manager har blitt trukket, noe som vil sikre at de grafiske kontrollene øverst i 3D-scene.
ApplicationManager.h /ApplicationManager.cpp
Den ApplicationManager nå utvider IEventReceiver klassen. Dette gjør det mulig å motta Irrlicht hendelsen gjennom OnEvent funksjonen.
Legge GUI XML-filen vi laget med redaktøren er så enkelt som å ringe IGUIEnvironment loadGUI funksjonen.
For å motta hendelser fra Irrlicht, som inkluderer GUI arrangementer, samt flere commone hendelser som tastaturtrykk eller musebevegelsen, vi kaller den IrrlichtDevice setEventReceiver funksjon, og pass på dette som første parameter.
Inne i OnEvent funksjon vi må sjekke til to typer arrangementer. Den første er definert av EET_GUI_EVENT konstant. Dette indikerer at brukeren har samhandlet med GUI. Vi sjekker da å se om det var et knappetrykk.
Hvis så vi identifisere knappen som ble trykket av ID som vi tildelt det i GUI editor, skjule GUI, og starte tilsvarende demo.
Hvis Escape-tasten ble trykket vi shutdown dagens demo og vise GUI igjen.
Resten av koden i ApplicationManager bare starte de samme demoer som er lagt fram i tid