锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
ArchiveFactory *mFileSystemArchiveFactory = new FileSystemArchiveFactory();
ArchiveManager::getSingleton().addArchiveFactory( mFileSystemArchiveFactory );
FileSystemArchive *pFileSystem = static_cast<FileSystemArchive *>(m_ArchiveMgr.load("../Media", "FileSystem"));
StringVectorPtr pStrVectorFileSystem = pFileSystem->list(true);
ArchiveFactory *mZipArchiveFactory = new ZipArchiveFactory();
ArchiveManager::getSingleton().addArchiveFactory( mZipArchiveFactory );
ZipArchive *pZip = static_cast<ZipArchive *>(m_ArchiveMgr.load("../Media/Package/OgreCore.zip", "Zip"));
StringVectorPtr pStrVectorZip = pZip->list(true);
/* 浠庢枃浠朵腑璇誨彇鏁版嵁
DataStreamPtr pDataStream = pFileSystem->open("Texture/mm.jpg");
size_t s = pDataStream.getPointer()->size();
char *pBuf = new char[s];
pDataStream.getPointer()->read(static_cast<void *>(pBuf), s);
*/
//浠嶼ip璇誨彇鏁版嵁
DataStreamPtr pDataStream = pZip->open("OgreCore/ogretext.png");
size_t s = pDataStream.getPointer()->size();
char *pBuf = new char[s];
pDataStream.getPointer()->read(static_cast<void *>(pBuf), s);
//鑷畾涔夌被錛屽疄闄呮槸璋冪敤D3DXCreateTextureFromFileInMemoryEx
CScene9::CreateGraph2D(&graph);
graph.LoadFromMemory(pBuf, s);
if( arg.state.mPOV[pov].direction & Pov::North ) //Going up
std::cout << "North";
else if( arg.state.mPOV[pov].direction & Pov::South ) //Going down
std::cout << "South";
if( arg.state.mPOV[pov].direction & Pov::East ) //Going right
std::cout << "East";
else if( arg.state.mPOV[pov].direction & Pov::West ) //Going left
std::cout << "West";
if( arg.state.mPOV[pov].direction == Pov::Centered ) //stopped/centered out
std::cout << "Centered";
return true;
}
};
涓婇潰鐨勪唬鐮佸氨鏄畾涔変簡涓涓泦閿洏銆侀紶鏍囥佹墜鏌勬秷鎭帶鍒朵簬涓韜殑鐩戝惉鍣紝鏈夌浉搴斾簨浠朵駭鐢熷氨浼氳皟鐢ㄧ浉搴旂殑鍑芥暟錛屼嬌鐢ㄥ強鍏舵柟渚匡紝鎴戞妸OIS鐨刅C8鐗堟湰鎺ュ叆鍒版垜鍘熸潵鐨勪竴涓?D寮曟搸涓紝宸ヤ綔闈炲父欏哄埄錛岃繖涔熶嬌鎴戝交搴曠殑娣樻卑浜嗗師鏉ヤ笉鑹殑璁捐錛屽鏋滀綘鏈夎嚜宸辯殑寮曟搸錛屼綘涔熷彲浠ヨ瘯涓涓嬶紝OIS 涓嬭澆 http://sourceforge.net/projects/wgois/ 錛屽啀鏉ヤ釜Ogre瀵逛簬浠栫殑浠嬬粛 http://www.ogre3d.org/wiki/index.php/Using_OIS 銆?/p>
#include "audiere.h"
audiere::AudioDevicePtr device(audiere::OpenDevice());
audiere::OutputStreamPtr stream(audiere::OpenSound(device, "music.wav", false));
int main()
{
stream->setRepeat(true);
stream->setVolume(0.5f); // 50% volume
stream->play();
int a;
cin >> a;
return 0;
}
bool RPGApp::configure(void)
{
// Show the configuration dialog and initialise the system
// You can skip this and use root.restoreConfig() to load configuration
// settings if you were sure there are valid ones saved in ogre.cfg
//if(mRoot->showConfigDialog())
RenderSystemList *rsList = mRoot->getAvailableRenderers();
int c=0;
bool foundit = false;
RenderSystem *selectedRenderSystem=0;
while(c < (int) rsList->size()){
selectedRenderSystem = rsList->at(c);
String rname = selectedRenderSystem->getName();
if(rname.compare("Direct3D9 Rendering Subsystem")==0){
foundit=true;
break;
}
c++; // <-- oh how clever
}
if(!foundit) return false; //we didn't find it...
//we found it, we might as well use it!
selectedRenderSystem->setConfigOption("Full Screen","Yes");
selectedRenderSystem->setConfigOption("Video Mode","1024 x 768 @ 32-bit colour");
selectedRenderSystem->setConfigOption("Allow NVPerfHUD","No");
selectedRenderSystem->setConfigOption("Anti aliasing","None");
selectedRenderSystem->setConfigOption("Floating-point mode","Fastest");
//selectedRenderSystem->setConfigOption("Rendering Device","RADEON 9200");
selectedRenderSystem->setConfigOption("VSync","No");
mRoot->setRenderSystem(selectedRenderSystem);
mWindow = mRoot->initialise(true, "Dire Desire");
return true;
}
鍦ㄥ満鏅腑鍦板艦鐨勫艦鐘跺拰鏌撹壊浠庝竴寮犻珮搴﹀浘錛屼竴寮犲湴褰㈢汗鐞嗗拰涓寮犵粏鑺傝創鍥句腑琚綆楀嚭鏉ャ傞珮搴﹀浘鏄竴寮犵伆搴﹀浘錛屾瘡涓薄绱犺〃鐜頒竴涓珮搴﹀鹼紝0琛ㄧず鍦板鉤闈紝255琛ㄧず鍦板艦鏈楂樼偣銆?/span>
鍦板艦涓婇潰瑕嗙洊鐨勭殑閭e眰綰圭悊琚媺浼搞傝繖浜涘湴褰㈢汗鐞嗗叿鏈変唬琛ㄦх殑鏄枒椹崇殑瑜愯壊錛岀豢鑹詫紝鐧借壊鎴栬呯伆鑹查傚悎浜庡湴琛紝鑽夛紝闆垨宀╃煶鍦板艦銆傚湴褰㈢汗鐞嗛氬父姣旇瑕嗙洊鍦板艦灝忕殑澶氾紝鎵浠ヨ繎鐪嬫椂閫氬父寰堟ā緋娿備負浜嗚В鍐寵繖涓棶棰橈紝浣跨敤浜嗕竴寮犵粏鑺傜汗鐞嗭紝褰撹繎鐪嬫椂娣峰悎鍦板艦綰圭悊銆傜粏鑺傜汗鐞嗘病鏈夎鎷変幾錛屾秷闄や簡榪戠湅妯$硦闂銆?span lang=EN>
鍦板艦琚垎鎴愪竴涓湴褰㈠皬鍧楄〃鏍箋傚湴褰㈠皬鍧楀彲鑳藉湪涓嶅悓鐨勭粏鑺傚眰嬈¤鍦烘櫙綆$悊鍣ㄦ樉紺哄嚭鏉ワ紝渚濊禆浜庡皬鍧楃殑甯冨眬鍜岀瑙傚療鑰呯殑璺濈銆傛暣涓湴褰㈣鎶曞皠鍒頒竴涓笘鐣屽潗鏍囩┖闂翠腑錛屽湪閲岄潰鍦板艦鐨勫昂瀵搞?span lang=EN>
鐩綍
Configuration Parameters
鍦板艦鍦烘櫙綆$悊鍣ㄩ氳繃terrain.cfg鏁欐湰琚緗?span lang=EN>
Basic Configuration Parameters
1. WorldTexture: 鎸囧畾鍦板艦綰圭悊鐨勫悕縐般?span lang=EN>
2. DetailTexture: 鎸囧畾緇嗚妭綰圭悊鐨勫悕縐般?span lang=EN>
3. DetailTile: 榪欎釜鎸囧畾緇嗚妭綰圭悊鍦ㄦ瘡涓湴褰㈠皬鍧椾腑閲嶅嬈℃暟錛屼篃灝辨槸璇達紝濡傛灉榪欎釜鍊兼槸n錛岀粏鑺傜汗鐞嗗皢鍦ㄦ瘡涓湴褰㈠皬鍧楃殑n*n鏍間腑琚樉紺恒傚鏋滆繖涓艱緗繃浣庯紝鍦板艦鍦ㄨ繎鐪嬫椂浼氭ā緋婏紝鍙嶄箣鍒欎細鍦ㄦ斁鐪艱瀵熸椂鐪嬭搗鏉ユ湁鍙嶅妯″紡錛堥湶棣呬簡錛?span lang=EN>^_^錛?銆?span lang=EN>
4. PageSource: 鎸囧畾楂樺害鍥炬暟鎹殑鏉ユ簮錛岄粯璁や負Heightmap.
5. Heightmap.image: 鎸囧畾楂樺害鍥劇殑鍚嶇О銆傚昂瀵稿繀欏繪槸鏂瑰艦錛岃屼笖瑕佺鍚?span lang=EN>2^n+1錛?楂樺害鍥捐秺澶э紝鍦板艦緇嗚妭灝辮秺楂橈紝浣嗘槸紼嬪簭娑堣楃殑鐨勮祫婧愪篃瓚婂錛堝寘鎷▼搴忓惎鍔ㄦ椂闂達級銆?span lang=EN>
6. PageSize: 鍦板艦灝嗕細鏈?em>PageSize * PageSize閭d箞澶с傚涓婃墍榪幫紝蹇呴』瑕佺鍚?span lang=EN>2^n+1 錛堝65錛?span lang=EN>129錛?span lang=EN>257錛?span lang=EN>513錛?span lang=EN>1025錛夈?span lang=EN>
7. TileSize: 鍦板艦灝忓潡鏈?TileSize * TileSize澶у皬銆傝繖涓暟蹇呴』灝忎簬PageSize銆?/em>榪欎釜鏁板繀欏昏絎﹀悎2^n+1欏昏絎﹀悎2^n+1銆傝鐨勮繃灝忎細涓ラ噸褰卞搷鎬ц兘錛屽お澶х殑璇濆張浼氬湪鍦烘櫙鐨勬煇浜涢儴鍒嗗鑷翠笉蹇呰鐨勯珮緇嗚妭銆?span lang=EN>
8. MaxPixelError: 鎸囧畾褰撳喅瀹氬摢涓粏鑺傚眰嬈¤浣跨敤鏃剁殑鏈澶у厑璁歌宸傝緗繃楂樹細瀵艱嚧鍦板艦鎾曡錛岃繃浣庡垯浼氬獎鍝嶆ц兘銆?span lang=EN>
9. PageWorldX, PageWorldZ: 璁懼畾鍦板艦鍦ㄤ笘鐣屽潗鏍囩郴涓殑鑼冨洿錛屽湴褰㈣秺澶э紝緇嗚妭瓚婁綆錛屽湴褰嬌鐢ㄧ殑欏剁偣鏁板熀浜庨珮搴﹀浘錛屼笉鏄笘鐣屽ぇ灝忥紝浣犲彲浠ョ緝鏀懼湴褰㈠埌浣犳兂瑕佺殑浠繪剰澶у皬銆?span lang=EN>
10. MaxHeight: 鍦ㄤ笘鐣屽潗鏍囩郴涓湴褰㈢殑鏈澶ч珮搴︺傞珮搴﹀浘涓殑0..255 緙╂斁鍒頒笘鐣屽潗鏍囩郴涓殑 0..MaxHeight銆?span lang=EN>
11. MaxMipMapLevel: 鎸囧畾娓叉煋鍦板艦浣跨敤鐨勭粏鑺傚眰嬈$殑鏁扮洰銆傚湴褰㈢殑榪滃鍜屽鉤鍧﹀浼氫互浣庣粏鑺傛覆鏌撱?/span>
Advanced Configuration Parameters
鏈変簺楂樺害鍥句繚瀛樹負raw鏍煎紡錛屼笅鍒楀弬鏁版弿榪?span lang=EN>raw鏍煎紡銆?span lang=EN>
12. Heightmap.raw.size: 鎸囧畾楂樺害鍥劇殑灝哄錛岃姹傚悓涓娿?span lang=EN>
13. Heightmap.raw.bpp: 鎸囧畾姣忚薄绱犲瓧鑺傛暟錛?span lang=EN>1=8 bits, 2=16 bits銆?span lang=EN>
14. Heightmap.flip: 濡傛灉璁劇疆涓?span lang=EN>true錛屽垯緲昏漿楂樺害鍥俱?span lang=EN>
楂樺害鍥懼鐞嗚鏄?span lang=EN>
楂樺害鍥懼繀欏繪槸鐏板害鍥撅紝濡傛灉涓嶆槸錛屽彲浠ヤ嬌鐢?span lang=EN>photoshop澶勭悊錛岄夋嫨鑿滃崟銆愬浘鍍忋?span lang=EN>->妯″紡->鐏板害錛岀劧鍚庡瓨涓?span lang=EN>png鏍煎紡鍗沖彲銆?span lang=EN>
鍧愭爣緋婚棶棰?span lang=EN>
Terrain Scene Manager鎶婄汗鐞嗗浘鐨勫乏涓婅浣滀負涓栫晫鍘熺偣錛?/span>0錛?/span>0錛?/span>0錛夛紝浠ヤ粠宸﹀埌鍙充負x姝f柟鍚戯紝浠庝笂鍒頒笅涓?/span>z姝f柟鍚戯紝浠庡睆騫曢噷鍒板睆騫曞涓?/span>y姝f柟鍚戯紝絎﹀悎鍙蟲墜鍧愭爣緋匯?/span>
static T* ms_Singleton;
public:
Singleton( void )
{
assert( !ms_Singleton );
ms_Singleton = static_cast< T* >( this );
}
~Singleton( void )
{ assert( ms_Singleton ); ms_Singleton = 0; }
static T& getSingleton( void )
{ assert( ms_Singleton ); return ( *ms_Singleton ); }
static T* getSingletonPtr( void )
{ return ms_Singleton; }
};
}
鎺ヤ笅鏉ュ彧瑕佺戶鎵胯繖涓ā鏉跨被騫朵笖閲嶈澆getSingleton()錛実etSingletonPtr()錛岀‘瀹炲緢鏂逛究錛屼笉鏄箞^_^
STL灝辨洿涓嶇敤璇翠簡錛屾病鏈塖TL錛孫GRE鎭愭曞氨涓嶆槸鐜板湪榪欎釜鏍峰瓙錛岃鍒拌繖閲岋紝鎴戝OGRE閲囩敤鐨凷TL鍛藉悕娉曞茍涓嶈禐鍚岋紝涓句釜渚嬪瓙錛?br> typedef std::map<String, Log*, std::less<String> > LogList;
榪欐槸涓涓猰ap錛屽嵈鍛藉悕涓篖ogList錛孲TL鍐呭惈list瀹瑰櫒錛屽緢瀹規槗娣鋒穯錛屾販娣嗙殑榪樺湪鍚庨潰
typedef std::vector<LogListener*> LogListenerList;
鏄庢槑鏄釜vector錛屽嵈鍛藉悕涓篖ogListenerList錛屽鏋滄暣涓伐紼嬬粺涓浣跨敤榪欎竴椋庢牸錛岃繕鍙互鎺ュ彈錛屼絾涓嬮潰榪欏彞灝辮繚鍙嶄簡
typedef std::vector<String> StringVector;
榪欓噷浣跨敤浜唙ector鍛藉悕StringVector錛屾垜涓漢瀵硅繖縐嶅懡鍚嶆瘮杈冭鍙紝涓鐩簡鐒?