*   >> läser Utbildning artiklar >> science >> programming

Att göra en 3D-spel med Ogre - Laddar ett Scene

ol getAttribBool (TiXmlElement * XMLNode, const String & parameter, bool default = false);

Vector3 parseVector3 (TiXmlElement * XMLNode); Quaternion parseQuaternion (TiXmlElement * XMLNode); ColourValue parseColour (TiXmlElement * XMLNode);

SceneManager * mSceneMgr; SceneNode * mAttachNode; Sträng m_sGroupName; Sträng m_sPrependNode; };} Omdömen #endif //DOT_SCENELOADER_H Omdömen

DotSceneLoader.cpp Omdömen

 #include "DotSceneLoader.h" #include "tinyxml.h" #include "Ogre.

h" Omdömen using namespace std; using namespace Ogre,

annullera DotSceneLoader :: parseDotScene (const String & SceneName, const String & groupname, SceneManager * yourSceneMgr, SceneNode * pAttachNode, const String & sPrependNode) {//inrätta delade objektvärden m_sGroupName = groupname; mSceneMgr = yourSceneMgr; m_sPrependNode = sPrependNode; staticObjects.clear (); dynamicObjects.

clear ();

TiXmlDocument * XMLDoc = 0; TiXmlElement * XMLRoot,

try {//Strip vägen Ogre :: String basnamn, bana; Ogre :: StringUtil :: splitFilename (SceneName, basename, väg);

DataStreamPtr pStream = ResourceGroupManager :: getSingleton (). openResource (basename, groupname);

//DataStreamPtr pStream = ResourceGroupManager :: getSingleton (). //OpenResource (SceneName, groupname);

Strängdata = pStream-> getAsString (); //Öppna .scene File XMLDoc = new TiXmlDocument (); XMLDoc-> parse (data.c_str ()); pStream-> close (); pStream.setNull ();.

Omdömen if (XMLDoc-> Fel ()) {//Vi ska bara log, och fortsätta på graciöst LogManager :: getSingleton () logMessage ("[DotSceneLoader] The TiXmlDocument rapporterade ett fel" ); radera XMLDoc; återvända; }} Catch (...) {//Vi ska bara log, och fortsätta på graciöst LogManager :: getSingleton () logMessage ("[DotSceneLoader] Fel vid skapande TiXmlDocument"). radera XMLDoc; återvända; }

//Validera Arkiv XMLRoot = XMLDoc-> RootElement (); if (String (XMLRoot-> Value ()) = "scen"!) {LogManager :: getSingleton () logMessage. ("[DotSceneLoader] Fel:. Ogiltig .

scene fil saknas"); radera XMLDoc; återvända; }

//räkna ut var att bifoga noder vi skapar mAttachNode = pAttachNode; if (! mAttachNode) mAttachNode = mSceneMgr-> getRootSceneNode ();

//Process scenen processScene (XMLRoot),

//Stäng XML File bort XMLDoc;} Omdömen annullera DotSceneLoader :: processScene (TiXmlElement * XMLRoot) {//Process scenen parametrar String version = getAttrib (XMLRoot "formatVersion", "okänd");

String message = "[DotSceneLoader] Analysera dotScene fil med version" + version; if (XMLRoot-> Attribut ("ID")) meddelande + = "id" + String (XMLRoot-> Attribut ("ID")); if (XMLRoot-> Attribut ("sceneManager")) meddelande + = ", scen manager" + String (XMLRoot-> Attribut ("sceneManager")); if (XMLRoot-> Attribut ("minOgreVersion")) meddelande + = ", min Ogre version.

" + String (XMLRoot-> Attribut ("minOgreVersion")); if (XMLRoot-> Attribut ("författare")) meddelande + = "författare" + String (XMLRoot->

Page   <<  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... >>  >> 
Copyright © 2008 - 2016 läser Utbildning artiklar,https://utbildning.nmjjxx.com All rights reserved.