o download do demo e código fonte
Voltar ao Índice TUTORIAL
A GUI decente é obrigatória para quase qualquer jogo de PC estes dias. Eu me lembro que eu era grande coisa quando o jogo Unreal original tinha construído em um navegador jogo em rede; até que ponto, a maioria dos jogos utilizado um aplicativo externo para encontrar e jogos em rede lançamento.
Irrlicht tem um sistema de GUI muito capaz incluído nele, junto com um editor GUI simples. Iremos utilizar este editor primeiro a criar uma interface de usuário simples.
Execute o aplicativo GUIEditor.exe da pasta Irrlicht bin \\ Win32-VisualStudio no Irrlicht SDK. Com o botão direito na janela você pode adicionar controles de GUI.
Na imagem abaixo, nós adicionamos 4 botões.
Na GUI janela do editor assegurar que cada botão tem uma identificação única, que pode ser modificado na guia Elemento. Clique com o botão direito na janela do editor novamente e clique em Salvar. Você terá agora um arquivo chamado guiText.xml.
IrrlichtEngineManager.h /IrrlichtEngineManager.
cpp
Por conveniência, vamos adicionar uma função à IrrlichtEngineManager chamado GetGUIEnvironment que os retornos o ponteiro para o ambiente Irrlicht GUI.
Nós também precisamos desenhar o ambiente de GUI no loop de processamento. Nós adicionamos uma chamada para a função IGUIEnvironment drawAll após o gerente cena foi elaborado, o que irá garantir que os controles de GUI aparece no topo da cena 3D.
ApplicationManager.h /ApplicationManager.cpp
O ApplicationManager agora estende a classe IEventReceiver.
Isso permite que ele receba evento Irrlicht através da função OnEvent.
Carregando o arquivo XML GUI que criamos com o editor é tão simples como chamar a função IGUIEnvironment loadGUI.
Para receber eventos de Irrlicht, que inclui eventos de GUI, bem como mais eventos commone como imprensas de teclado ou movimento do rato, chamamos a função IrrlichtDevice setEventReceiver, e passar isso como o primeiro parâmetro.
Dentro da função OnEvent precisamos verificar a dois tipos de eventos. O primeiro é definido pela constante EET_GUI_EVENT.
Isto indica que o utilizador interage com a GUI. Em seguida, verificar para ver se era um botão de imprensa. Se portanto, identificar o botão que foi pressionado pelo ID que lhe é atribuído no editor GUI, esconder o GUI, e lançar a demo correspondente.
Se a t