*   >> Lese Utdanning Artikler >> science >> programming

Å gjøre en 3D-spill med Ogre - åpner et vindu

er navnet på tekstfilen som inneholder navnene på de Ogre plugins som skal brukes. Den configFileName er navnet på en fil som Ogre vil bruke til å lagre informasjon om renderer og skjermoppløsning. Den logfilename er navnet på en loggfil som Ogre vil skrive til

 root.reset (ny Root (pluginFileName, configFileName, logfilename));. 

Denne koden fører Ogre å vise en dialogboks med alternativer grafikk. .

Hvis spilleren avbryter ut av dialogboksen vi tilbake falsk, noe som vil føre til at programmet til å avslutte

 hvis return false (Konfigurer ()!); 

Standard antall mipmaper er spesifisert. Du kan finne ut mer informasjon om mipmaper her

 TextureManager :: getSingleton () setDefaultNumMipmaps 

(5),..

Vi kaller SetupInputDevices fungere å initial OIS (Object-Oriented Input System), som er en eksternt bibliotek som har blitt de facto standard for tilgang inndataenheter i Ogre

 SetupInputDevices ();. 

Ressursene Ogre blir deretter lastet.

De Ogre prøvene laste sine ressurser fra en tekstfil, men jeg foretrekker å holde disse verdiene i kildekoden (det er en ting mindre som kan endres av sluttbrukeren, og så er en ting mindre å gå galt). For denne demoen vi ikke vil faktisk laste noen ressurser, men dette vil bli viktig senere

 SetupResources ();. 

OgreEngineManager trenger å motta meldinger om to hendelser. Siden det utvider FrameListener klassen, er The OgreEngineManagers frameStarted funksjon kalt en gang per ramme.

Og ved å utvide WindowEventListener klassen er vi varslet av vinduet lukkes med windowClosed funksjon. Imidlertid er disse funksjonene ikke utløses automatisk - må vi først registrere OgreEngineManager med de riktige objektene

 root-> addFrameListener (denne);. WindowEventUtilities :: addWindowEventListener (vindu, dette);. 

Til slutt vi return true for å indikere at Ogre har blitt initialisert

 return true;} 

shutdown renser opp alle ressursene Ogre. Vi starter med å fjerne OgreEngineManager objekt fra listen over FrameListeners og WindowEventListeners.

Dette er litt overflødig, fordi ødelegger roten objektet vil gjøre dette likevel, men det gjør ikke vondt til gjennom

 annullere OgreEngineManager :: Shutdown () {root-> removeFrameListener (denne).; WindowEventUtilities :: removeWindowEventListener (vindu, dette); 

The Ogre Root slettes deretter

 root.reset ();. 

Og de resterende variablene er satt tilbake til NULL

 generi

Page   <<  [1] [2] [3] [4] [5] >>
Copyright © 2008 - 2016 Lese Utdanning Artikler,https://utdanning.nmjjxx.com All rights reserved.