*   >> Læs Uddannelse artikler >> science >> programming

Realiseringen af ​​et 3D-spil med Ogre - Indlæsning af en Scene

Download demoen og kildekode [LINUX]

Download demoen og kildekode [WINDOWS]

TILBAGE TIL tutorial INDEX

Nu, hvor vi har initialiseret den Ogre 3D-motor er det tid til at begynde at vise nogle 3D-objekter. Et af de spørgsmål, som udviklerne nødt til at tage fat på, er, hvordan et niveau, vil blive defineret og indlæses i Ogre motor. Den nemmeste måde, i hvert fald i første omgang, er simpelthen hårdt kode oprettelsen af ​​et niveau i C ++.

Alle de prøver, der kommer med Ogre 3D SDK hårdt kode logikken for at skabe et terræn, der viser et 3D-objekt, oprettelse af en skybox osv, så det er fristende at kombinere koden fra alle disse prøver at lave en komplet plan.

Der er flere store ulemper til at definere et niveau på denne måde.

1. Hver lille ændring i niveau kræver at ansøgningen kan genoversat (og der får meget tidskrævende).

2. Det er næsten umuligt for andre end udvikleren til at skabe niveauer.

3. Det betyder, at du ikke kan bruge 3.

parts værktøjer til at skabe en verden, fordi ingen skabelse verden nytte jeg kender udgange C ++ kode.

Alternativet er at definere et niveau i en ekstern fil. Mens Ogre har ingen indbygget understøttelse for dette, et initiativ kaldet dotscene gør angive en XML-format, der kan bruges til hurtigt sætte en scene eller niveau. Formatet er også noget af en standard inden Ogre, og en hel del 3. parts værktøjer understøtter formatet.

Desværre dotscene initiativet er ikke helt så funktionen fuldstændig som man kunne forvente.

Dotscene selv bare angiver formatet og efterlader den faktiske gennemførelse op til andre. Der har været mange forsøg på at implementere specifikationen, men alle synes at have deres mangler. Heldigvis den seneste implementering, benævnt "Ny DotScene Loader" på Ogre Wiki, er gennemføre det meste af, hvad vi har brug for.

Vores spil vil bruge DotSceneLoader klassen, og nu vil vi udvide den til at støtte initialisering terræn scene ledere.

Senere vil vi give den DotSceneLoader klassen mulighed for at indlæse objekter specifikke for vores spil, som vil afvige fra den officielle standard, men det er fint til vores formål.

DotSceneLoader.h

 #ifndef DOT_SCENELOADER_H # definerer DOT_SCENELOADER_H 

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

h" # include "vektor"

//Forward declarationsclass TiXmlElement ;

namespace Ogre {//Fremad erklæringer

Page   <<       [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... >>  >> 
Copyright © 2008 - 2016 Læs Uddannelse artikler,https://uddannelse.nmjjxx.com All rights reserved.