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

Å gjøre en 3D-spill med Ogre - Legge en Scene

Last ned demoen og kildekode [LINUX]

Last ned demoen og kildekode [WINDOWS]

TILBAKE TIL TUTORIAL INDEX

Nå som vi har initialisert den Ogre 3D-motoren er det på tide å begynne å vise noen 3D-objekter. Et av spørsmålene som utviklerne må ta opp er hvordan et nivå vil bli definert og lastet inn i Ogre motoren. Den enkleste måten, i det minste innledningsvis, er å bare vanskelig kode opprettelse av et nivå i C ++.

Alle prøvene som kommer med Ogre 3D SDK hardt kode logikken for å skape et terreng, viser en 3D-objekt, sette opp en skybox etc, så er det fristende å kombinere koden fra alle disse prøvene for å lage en komplett plan.

Det er flere store negative til å definere et nivå på denne måten.

1. Hver lille endring i nivå krever at programmet rekompileres (og det blir veldig tidkrevende).

2. Det er nesten umulig for andre enn utvikleren å lage nivåer.

3. Det betyr at du ikke kan bruke 3.

parts verktøy for å skape en verden, fordi ingen verdens skapelse verktøyet jeg vet utganger C ++ kode.

Alternativet er å definere et nivå i en ekstern fil. Mens Ogre har ingen innebygd støtte for dette, et initiativ kalt dotscene gjør angi et XML-format som kan brukes til raskt å sette opp en scene eller nivå. Formatet er også noe av en standard innen Ogre, og ganske mange 3. parts verktøy støtter formatet.

Dessverre initiativ dotscene er ikke fullt så funksjonen komplett som man kunne forvente.

Dotscene selv bare spesifiserer formatet og forlater den faktiske gjennomføringen opp til andre. Det har vært mange forsøk på å implementere spesifikasjonen, men alle synes å ha sine svakheter. Heldigvis den siste gjennomføringen, referert til som "Ny DotScene Loader" på Ogre Wiki, ikke gjennomføre det meste av det vi trenger.

Vår spillet vil bruke DotSceneLoader klasse, og for nå vil vi utvide den til å støtte initialisering terreng scene ledere.

Senere vil vi gi DotSceneLoader klassen muligheten til å laste gjenstander bestemt til spillet vårt, som vil avvike fra den offisielle standard, men det er greit for vårt formål.

DotSceneLoader.h

 #ifndef DOT_SCENELOADER_H # definere DOT_SCENELOADER_H 

//Inkluderer # include "OgreString.h" #include "OgreVector3.h" #include "OgreQuaternion.

h" #include "vector"

//Forward declarationsclass TiXmlElement ;

navnerom Ogre {//Forward erklæringer klasse SceneManager; klasse SceneNode;

klasse nodeProperty {public: St

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