*   >> Leitura Educação Artigos >> science >> programação

Fazendo um jogo 3D com Ogre - Carregando um Scene

râmetro, Real defaultValue = 0); int getAttribInt (TiXmlElement * XMLNode, const string & parâmetro, int defaultValue = 0); bool getAttribBool (TiXmlElement * XMLNode, const string & parâmetro, bool defaultValue = false);

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

SceneManager * mSceneMgr; SceneNode * mAttachNode; Corda m_sGroupName; Corda m_sPrependNode; };}

#endif //DOT_SCENELOADER_H

DotSceneLoader.cpp

 #include "DotSceneLoader.

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

usando namespace std; using namespace Ogre;

anular DotSceneLoader :: parseDotScene (const string & SceneName, const string & groupName, SceneManager * yourSceneMgr, SceneNode * pAttachNode, const string & sPrependNode) {//configurar valores objeto compartilhado m_sGroupName = groupName; mSceneMgr = yourSceneMgr; m_sPrependNode = sPrependNode; staticObjects.clear (); dynamicObjects.

clear ();

TiXmlDocument * XMLDoc = 0; TiXmlElement * XmlRoot;

try {//Tira o caminho Ogre :: string basename, caminho; Ogre :: :: StringUtil splitFilename (SceneName, basename, caminho);

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

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

dados String = pStream-> getAsString (); //Abre o XMLDoc .scene arquivo = new TiXmlDocument (); XMLDoc-> Parse (data.c_str ()); pStream-> close (); pStream.setNull ();.


if (XMLDoc-> Erro ()) {//Nós vamos faça o login, e continuar graciosamente LogManager :: getSingleton () logMessage ("[DotSceneLoader] O TiXmlDocument relatou um erro" ); excluir XMLDoc; Retorna; }} Catch (...) {//Nós vamos faça o login, e continuar graciosamente LogManager :: getSingleton () logMessage ("[DotSceneLoader] Erro ao criar TiXmlDocument."); excluir XMLDoc; Retorna; } //

validar o arquivo XmlRoot = XMLDoc-> RootElement (); if (String (XMLRoot-> Valor ()) = "cena"!) {LogManager :: getSingleton () logMessage. ("[DotSceneLoader] Erro:. .

scene arquivo inválido Missing"); excluir XMLDoc; Retorna; } //

descobrir onde vai fixar quaisquer nós que criamos mAttachNode = pAttachNode; if (! mAttachNode) mAttachNode = mSceneMgr-> getRootSceneNode ();

//Processar a cena processScene (XmlRoot);

//Fecha o arquivo XML excluir XMLDoc;}

anular DotSceneLoader :: pro

Page   <<  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... >>  >> 
Copyright © 2008 - 2016 Leitura Educação Artigos,https://artigos.nmjjxx.com All rights reserved.