2010年5月7日
用freebsd系統(tǒng)快一年了,去年夏天剛剛開始用時(shí),對(duì)系統(tǒng)安裝,基本的操作研究過(guò),用源碼編譯lua和mysql時(shí),lua庫(kù)文件不能正常鏈接,mysql的sock也出錯(cuò)。 最近公司服務(wù)器龍哥重新裝過(guò)一次,自己在vb上也裝上了8.0版本,真正體會(huì)到了ports安裝軟件對(duì)使用fb帶來(lái)的方便,lua和msyql的庫(kù)都有了,寫了個(gè)小程序測(cè)試也可以用。 朋友介紹luabind比較強(qiáng)大,去看過(guò)一些翻譯的文章,比我自己用的這個(gè)強(qiáng)啊,更稀奇的是,在fb的ports上也有這個(gè)軟件,make intall clean就可以看到庫(kù)文件,在原先的程序上添加luabind,編譯慢,又會(huì)出錯(cuò),糾結(jié)了一些時(shí)間才發(fā)現(xiàn),0.7版本的不支持lua51,只能是lua50,只是在系統(tǒng)上裝最新的,但新問(wèn)題又來(lái)了。
2008年10月29日
隊(duì)伍組成
開發(fā)團(tuán)隊(duì) n 制作人 n 執(zhí)行制作人 n 策劃團(tuán)隊(duì) n 程式團(tuán)隊(duì) n 美術(shù)團(tuán)隊(duì)
銷售團(tuán)隊(duì)
測(cè)試團(tuán)隊(duì)
游戲評(píng)論隊(duì)伍
游戲制作人
n 開發(fā)組長(zhǎng)(always) n 資源管理 (Resource Management) n 行政管理 (Administration) n 向上負(fù)責(zé) (Upward Management) n 專案管理 (Project Management)
游戲執(zhí)行制作人
n 專案管理執(zhí)行 (Project Management) n Daily 運(yùn)作 n House Keeping n Not full-time job position
游戲策劃
n 故事設(shè)計(jì) (Story Telling) n 腳本設(shè)計(jì) (Scripting) n 玩法設(shè)計(jì) (Game Play Design) n 關(guān)卡設(shè)計(jì) (Level Design) n 游戲調(diào)適 (Game Tuning) n 數(shù)值設(shè)定 (Numerical Setup) n AI 設(shè)計(jì) (Game AI) n 音效設(shè)定 (Sound FX Setup) n 場(chǎng)景設(shè)定 (Scene Setup)
游戲美術(shù)
n 場(chǎng)景 (Terrain) n 人物 (Character) n 建模 (Models) n 材質(zhì) (Textures) n 動(dòng)作 (Motion / Animation) n 特效 (FX) n 用戶界面User Interface
游戲程序
n 游戲程序 (Game Program) n 游戲開發(fā)工具 (Game Tools) n Level Editor n Scene Editor n FX Editor n Script Editor n 游戲Data Exporters from 3D Software n 3dsMax / Maya / Softimage n 游戲引擎開發(fā)Game Engine Development n 網(wǎng)絡(luò)游戲服務(wù)端開發(fā)Online Game Server Development
游戲開發(fā)流程
創(chuàng)意 提案 制作 整合 測(cè)試 贊成 雛形 除錯(cuò) 調(diào)試
Pre-alpha Alpha Beta 結(jié)束
n 創(chuàng)意 (Idea) n 提案 (Proposal) n 制作 (Production) n 整合 (Integration) n 測(cè)試 (Testing) n 除錯(cuò) (Debug) n 調(diào)試 (Tuning)
游戲設(shè)計(jì)(Concept Design)
n 游戲類型 (Game Types) n 游戲世界觀 (Game World) n 故事 (Story) n 游戲特色 (Features) n 游戲玩法 (Game Play) n 游戲定位 (Game Product Positioning) n Target player n Marketing segmentation / positioning n 風(fēng)險(xiǎn)評(píng)估 (Risk) n SWOT (優(yōu)勢(shì)Strength/缺點(diǎn)Weakness/機(jī)會(huì)Opportunity/威脅Threat)
游戲提案 (Proposal)
n 系統(tǒng)分析 (System Analysis) n 游戲設(shè)計(jì)文件撰寫 (Game Design Document) n 傳播媒介文件撰寫 (Media Design Document) n 技術(shù)設(shè)計(jì)文案撰寫 (Technical Design Document) n 游戲?qū)0附?(Game Project) n 時(shí)間表Schedule n 進(jìn)程/控制Milestones / Check points n 管理Risk management n 測(cè)試計(jì)劃書 n 團(tuán)隊(duì)建立 (Team Building)
游戲開發(fā) (Production)
n 美術(shù)量產(chǎn)制作 n (建模)Modeling n (結(jié)構(gòu))Textures n (動(dòng)畫)Animation n (動(dòng)作)Motion n (特效)FX n 程序開發(fā) (Coding) n 策劃數(shù)值設(shè)定
游戲整和 (Integration)
n 關(guān)卡串聯(lián) (Level Integration) n 數(shù)值調(diào)整 (Number Tuning) n 音效置入 (Audio) n 完成所有美術(shù) n 程旬與美術(shù)結(jié)合 n (攻略)Focus Group (說(shuō)明書User Study) n 發(fā)布一些攻略截圖Release some playable levels for focus group
游戲測(cè)試 (Testing)
n Alpha(α) 測(cè)試 n 除錯(cuò) (Debug) n Beta (β)測(cè)試 n 數(shù)值微調(diào) n Game play 微調(diào) n 對(duì)網(wǎng)絡(luò)游戲而言 (MMOG) n 封閉測(cè)試 (Closed Beta) n 開放測(cè)試 (Open Beta) n 壓力(極限)測(cè)試 (Critical Testing) n 網(wǎng)絡(luò)游戲才有
關(guān)于Bug
n Bug 分級(jí) (Bug Classification) n A Bug n B Bug n C Bug n S Bug n Principles n Bug 分級(jí)從嚴(yán) n Tester(測(cè)試對(duì)象?—) vs Debugger(調(diào)試程序)
系統(tǒng)層System Layer – APIs
n 3D Graphics API n DirectX 9.0 SDK – Direct3D n OpenGL 2.0 n 2D API n DirectX 9.0 SDK - DirectMedia n Win32 GDI n Input Device n DirectX 9.0 SDK – DirectInput n Audio n DirectX 9.0 SDK – DirectSound / Direct3DSound / DirectMedia n OpenAL n OS API n Win32 SDK n MFC n Network n DirectX 9.0 SDK – DirectPlay n Socket library
引擎層Engine Layer
n 3D Scene Management System n Scene Graph n Shaders n 2D Sprite System n Audio System n Gamepad n Hotkey n Mouse n Timers n Network n DDK Interface n Terrain n Advanced Scene Management – Space Partition n BSP Tree n Octree n Character System n Motion Blending Techniques n Dynamics n Collision Detection n SoundFX n User Interface
游戲?qū)覩ame Play Modula
n NPC (Non-playable Characters) n Game AI n Path Finding n Finite State Machine n … n Avatar n Combat System n FX System n Script System n Trading System n Number System n … Game Dev Tools n Visual C/C++ n .net 2003 n Visual C/C++ 6.0+ SP5 n DirectX n Current 9.0c n NuMega BoundsChecker n Intel vTune n 3D Tools n 3dsMax/Maya/Softimage n In-house Tools
~~~~~~~~~~結(jié)束~~~~~~~~~
游戲分類
n RPG (Role playing games角色扮演) n AVG (Adventure games冒險(xiǎn)類) n RTS (Real-time strategy games既時(shí)戰(zhàn)略) n FPS (First-person shooting games主視覺(jué)射擊) n MMORPG(多人在線角色扮演) n SLG (戰(zhàn)棋) n Simulation(模擬) n Sports(運(yùn)動(dòng)) n Puzzle games(解迷) n Table games(棋牌)
2008年10月16日
以前到網(wǎng)上查資料,關(guān)于C++連接mysql數(shù)據(jù)庫(kù),所以就會(huì)用c api來(lái)操作mysql,隨后想想,只會(huì)用c api有點(diǎn)不太滿足,于是這幾天一直找用ado連接mysql的方法.用ado連接mysql的數(shù)據(jù)庫(kù)的資料沒(méi)找到,反而找到連接sql server的,通過(guò)ole db方式成功連接,然后修改一下連接字符,用odbc的方式又成功了,想想,在odbc中配置的sql server數(shù)據(jù)源連接方式與mysql數(shù)據(jù)源一樣,是否只在變換一下數(shù)據(jù)源就連接到她的數(shù)據(jù)庫(kù)中去呢.結(jié)果只修改數(shù)據(jù)源也把mysql連接成功了. 原來(lái)發(fā)現(xiàn),odbc與ole db的方法只是連接字符中provider與dsn之間的區(qū)別.而且在dsn中只要寫好dsn就可以.用戶名和密碼等在dsn中已配置好.
下一步就是如何來(lái)操作這些存儲(chǔ)過(guò)程了.因?yàn)槲业腟QL語(yǔ)句都寫在數(shù)據(jù)庫(kù)上.呵,完全是為了安全嗎?
PS:今天(2009-01-22)終于把C++調(diào)用存儲(chǔ)過(guò)程中的返回?cái)?shù)據(jù)集搞好了.問(wèn)題出在聯(lián)接數(shù)據(jù)時(shí),最后一個(gè)參數(shù)沒(méi)有設(shè)置成CLIENT_MULTI_STATEMENT。 幾個(gè)月前沒(méi)有顯示中文是因?yàn)闆](méi)有加“mysql_query(&mysql,"set names gb2312"),現(xiàn)在把兩個(gè)問(wèn)題都解決了。
2008年5月29日
一個(gè)C++程序中,用到c api來(lái)調(diào)動(dòng)存儲(chǔ)過(guò)程.輸入多個(gè)參數(shù),返回一個(gè)int結(jié)果.
用c api都調(diào)用好后,讀取數(shù)據(jù)時(shí),rows[0]不能把MYSQL_RES轉(zhuǎn)成整型.到網(wǎng)上找了好多資料.沒(méi)查到為什么
后來(lái)在csdn中,2005年的一個(gè)帖.樓主也出現(xiàn)這問(wèn)題,而他是不確定用atoi能否表示.
看了后,是應(yīng)該用atoi把他轉(zhuǎn)成int型的.結(jié)果正確.
2008年5月23日
到網(wǎng)上找了好多資料都沒(méi)有mysql_com.h 中的socket錯(cuò)誤.后來(lái)才發(fā)現(xiàn),沒(méi)有把winsock2.h引進(jìn)去.但引入進(jìn)去的時(shí)候,還是有一樣的錯(cuò)誤.確沒(méi)發(fā)現(xiàn)winsock2.h應(yīng)要在msyql.h的前面. 以后得記住.這是基礎(chǔ)方面的東西.
2008年5月13日
下面是一個(gè)C++調(diào)用windows API實(shí)現(xiàn)有通信程序,您可以據(jù)此進(jìn)行修改,封裝成類.
// *******************************************************************
// client.cpp : Defines the entry point for the console application. // author: hnynes
// QQ: 61737489
// *******************************************************************
#include "stdafx.h" #include <winsock2.h> #include <iostream> #define PORT_SERVER 6656
int main(int argc, char* argv[]) { std::cout << "Start up tcp client." << std::endl; WSADATA wsaData; WORD sockVersion = MAKEWORD(2, 0); if (0 != WSAStartup(sockVersion, &wsaData)) { std::cout << "Failed to retrive socket version." << std::endl; return 0; } SOCKET sock_client; sock_client = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (INVALID_SOCKET == sock_client) { std::cout << "Invalid socket." << std::endl; WSACleanup(); return 0; } sockaddr_in addr_sev; addr_sev.sin_family = AF_INET; addr_sev.sin_port = htons(PORT_SERVER); addr_sev.sin_addr.s_addr = inet_addr("127.0.0.1"); if (SOCKET_ERROR == connect(sock_client, (sockaddr *)&addr_sev, sizeof(addr_sev))) { std::cout << "Failed to connect." << std::endl; WSACleanup(); return 0; }
char buf[512]; int recv_size = 0; recv_size = recv(sock_client, buf, 512, 0); if (512 > recv_size) { buf[recv_size] = '\0'; std::cout << "receive data is :" << buf << std::endl; memset(buf, 0, sizeof(buf)); } else { std::cout << "receive data is overflow" << std::endl; }
closesocket(sock_client); WSACleanup(); system("PAUSE"); return 0; }
// *******************************************************************
// server.cpp : Defines the entry point for the console application. // author: hnynes
// QQ: 61737489
// *******************************************************************
#include "stdafx.h" #include <winsock2.h> #include <iostream> #define PORT_SERVER 6656 #define NUM_CLIENTS 10
int main(int argc, char* argv[]) { std::cout << "Start up tcp server." << std::endl; WSADATA wsaData; WORD sockVersion = MAKEWORD(2, 0); if (0 != WSAStartup(sockVersion, &wsaData)) { std::cout << "Failed to retrive socket version." << std::endl; return 0; }
SOCKET sock_sev; sock_sev = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (INVALID_SOCKET == sock_sev) { std::cout << "Invalid socket." << std::endl; WSACleanup(); return 0; }
sockaddr_in addr_sev; addr_sev.sin_family = AF_INET; addr_sev.sin_port = htons(PORT_SERVER); addr_sev.sin_addr.s_addr = INADDR_ANY; if (SOCKET_ERROR == bind(sock_sev, (sockaddr *)&addr_sev, sizeof(addr_sev))) { std::cout << "Failed to bind." << std::endl; WSACleanup(); return 0; } if (SOCKET_ERROR == listen(sock_sev, NUM_CLIENTS)) { std::cout << "Failed to listen." << std::endl; WSACleanup(); return 0; }
// 多路復(fù)用,暫時(shí)還未實(shí)現(xiàn).后期會(huì)對(duì)此給出示例. //fd_set reads; //fd_set writes; //fd_set accepts; //FD_ZERO(&reads); //FD_ZERO(&writes); //FD_ZERO(&accepts); //SOCKET sock_client; sockaddr_in addr_client; int nAddrLen = sizeof(addr_client); while (true) { char tmp[512]; sock_client = accept(sock_sev, (sockaddr *)&addr_client, &nAddrLen); if (INVALID_SOCKET == sock_client) { std::cout << "Failed to accept." << std::endl; continue; } sprintf(tmp, "Your IP is %s\n", inet_ntoa(addr_client.sin_addr)); send(sock_client, tmp, strlen(tmp), 0); std::cout << "Connection from " << inet_ntoa(addr_client.sin_addr) << std::endl;
closesocket(sock_client); } return 0; }
注:本程序使用的是VC6 IDE,編譯時(shí)請(qǐng)?jiān)趌ink中加入對(duì)ws2_32.lib庫(kù)的引用.
這個(gè)程序只是一個(gè)雛形,也作學(xué)習(xí)吧.
2008年5月4日
在C++應(yīng)用程序中,用到存儲(chǔ)過(guò)程調(diào)用mysql數(shù)據(jù)庫(kù),存儲(chǔ)過(guò)程用到select返回一行信息,但在程序中出現(xiàn)了錯(cuò)誤。 在網(wǎng)上找了這方面的問(wèn)題,其實(shí)可以用視圖來(lái)解決的。
2008年4月29日
常見(jiàn)的3D引擎有:Unreal,Quake,Lithtech,OGRE,Nebula,Irrlicht,Truevision3D...等,其中開源免費(fèi)的有:orge,irrlicht,fly3d, NeoEngine, revolution3d, Nebula2,Genesis3d等。OGRE 在免費(fèi)、開源的引擎中評(píng)價(jià)最高,一個(gè)原因是作為一個(gè)圖形渲染引擎,它支持的圖形特性最多,所以渲染質(zhì)量也不錯(cuò);另一個(gè)原因是設(shè)計(jì)模式的清晰;另外,速度也不錯(cuò)。OGRE 將專注于向一個(gè)純粹的、然而富于協(xié)作和擴(kuò)展性的圖形引擎發(fā)展,這得益于它的龐大的社群支持,使得很多事情可以通過(guò)外掛一些更專業(yè)的引擎來(lái)實(shí)現(xiàn),物理引擎使用 ODE 、 Tokamak 、 NovodeX ,網(wǎng)絡(luò)引擎使用 openTNL 、 RakNet 、 eNet ,聲音引擎使用 FMod 、 OpenAL ,以及界面引擎使用 CEGUI 。
Standard
|
OGRE
|
IrrLicht
|
Truevision3D
|
General
|
Type
|
Only rendering engine
|
|
Game engine
Include TV3DEngine,TV3DMedia,TV3DNet……
|
Languages
|
Written in pure C++, totally object orientated.
|
Written in pure C++, totally object orientated.
|
Written in C++ and VB6 with DirectX8.1
|
License
|
LGPL
|
zlib/libpng License(totally free)
|
· Free TV3DSDK
· Registered Developer License
· group or site licenses
|
Develop platforms
|
· C++
· .NET
|
· C++
· .NET language binding
|
VB/VC++/DELPHI/
C#/vb.net
|
Platforms
|
Windows
|
ü Support
|
ü Support
|
ü Support
|
Linux
|
ü Support
|
ü Support
|
|
MacOS
|
ü Support
|
ü Support
|
|
3D API
|
Direct3D
|
ü Support
|
ü Support
|
ü Support
|
OpenGL
|
ü Support
|
ü Support
|
|
Other
|
|
· The Irrlicht Engine software renderer.
· The Apfelbaum Software Renderer
|
|
Architecture
|
Extensibility
|
· Extensible example framework
· Flexible plugin architecture allows engine to be extended without recompilation
· Use some other professional engines to achieve other features
|
|
|
Scripting
|
|
|
|
Materials & Textures
|
Materials
|
· Powerful material declaration language
· Multiple material
· Material LOD
· Multi-texture and multi-pass blending
· Projective texturing
· Textures can be provided and updated in real-time by plugins
|
· Provide common built in materials based on fixed function pipeline or programmable pipeline
· add new materials to Irrlicht at runtime, without the need of modifying/recompiling the engine
|
|
Textures and Mapping
|
自動(dòng)產(chǎn)生MipMap;
自動(dòng)調(diào)整紋理大小以滿足硬件需求。
支持可程序控制的紋理坐標(biāo)生成和轉(zhuǎn)換。
|
· Bump mapping
· Parallax mapping
· Light maps
· Sphere mapping
|
DOT3 Bump mapping
沒(méi)有提供多層紋理和混合模式
|
Shaders
|
· Supports vertex and fragment programs, both written in assembler, and in Cg, DirectX9 HLSL, or GLSL
· Support many commonly bound constant parameters like worldview matrices, light state information, object space eye position etc
|
· Pixel and Vertex Shaders 1.1 to 3.0
· ARB Fragment and Vertex Programs
· HLSL
· GLSL
|
· Hardware Vertex Shaders
· HLSL
|
Scene Management
|
General
|
· Highly customizable, flexible scene management, not tied to any single scene type.
· Hierarchical scene graph; nodes allow objects to be attached to each other and follow each others movements, articulated structures etc
· Scene querying
|
· Using a hierarchical scene graph, can mix indoor and outdoor scene seamless together
· Extensible hierarchical scene management
|
|
BSP Support
|
BSP 場(chǎng)景的天空穹、粒子特效、高級(jí)材質(zhì)屬性,乃至 BSP 的空間分割規(guī)則都會(huì)被正確識(shí)別、自動(dòng)實(shí)現(xiàn)
|
· 對(duì) BSP 的特性支持比較貧乏
|
對(duì) BSP 的讀取存在 BUG
|
Other
|
|
|
|
Special effects
|
Particle System
|
· easily extensible emitters, affectors and renderers
· can be defined in text scripts for adjusting in real-time
· particle pooling
|
· Customizeable Particle systems for snow, smoke, fire, ...
|
Atmospheric effects like fog, cloud, sky (box and sphere), stars.
|
Light & Shadow
|
當(dāng)前支持三種陰影:調(diào)整紋理陰影,調(diào)整模版陰影,附加模板陰影。不支持軟陰影
Multiple shadow rendering techniques,
|
· Dynamic lights
· Dynamic shadows using the stencil buffer
|
· Optimized dynamic stencil shadows
· DirectX Hardware Lighting
|
Other
|
· Support for skyboxes, skyplanes and skydomes
· Billboarding for sprite graphics
· Transparent objects automatically managed
|
· Realistic water surfaces
· Billboards
· Transparent objects
· Skyboxes
· Fog
· Texture animation
|
Billboard
|
Character Animation
|
|
· Skeletal animation
· blending of multiple animations
· variable bone weight skinning
· hardware-accelerated skinning
|
· Morph target animation:
· Skeletal animation
|
· Skeleton based, Key frame based, morph based animations
· Animations that can be enhanced by bone attaching or custom bone rotations.
|
Supported Formats
|
textures file formats
|
· PNG, JPEG, TGA, BMP or DDS
· 1D textures, volumetric textures, cubemaps and compressed textures (DXT/S3TC)
|
· PSD,JPG,PNG,TGA,BMP,PCX
|
|
mesh file formats
|
Milkshape3D, 3D Studio Max, Maya, Blender and Wings3D
|
· 3DS,OBJ,CSM,DAE,DMF,OCT,X,MS3D,MY3D,LMTS,BSP,MD2
|
3DS, X, MDL, MD2, MD3
|
Document
|
|
Great number of users and well documented.
|
well documented API with lots of examples and tutorials.
|
|
Other
|
GUI
|
|
|
|
2D Drawing
|
|
|
|
XML
|
ü Support
XML Converter: convert efficient runtime binary formats to/from XML for interchange or editing
|
ü Support
快速的XML分析器
|
|
Web Site
|
|
http://www.ogre3d.org
|
http://irrlicht.sourceforge.net
|
http://www.truevision3d.com
|
來(lái)自:http://www.cnblogs.com/cyberchen-net
CEGUI ,全稱 "Crazy Eddie's GUI System" ,是一個(gè)專門的用戶界面庫(kù),開源并且免費(fèi),它支持 DirectX8 、 DirectX9 ,除了可以作為 OGRE 的界面外掛,還支持另一個(gè)免費(fèi)開源的 3D 引擎 Irrlicht 。由于它功能的相對(duì)強(qiáng)大和靈活, OGRE 的開發(fā)團(tuán)隊(duì)一直在推薦 OGRE 用戶使用這個(gè) CEGUI 來(lái)開發(fā)用戶界面,逐漸拋棄 OGRE 本身過(guò)于簡(jiǎn)陋的 GUI 插件。尤其是在行將到來(lái)的新版本 OGRE 1.5 的聲明中特別強(qiáng)調(diào)了這一點(diǎn),盡管這個(gè)版本仍然暫時(shí)保留內(nèi)置 GUI 系統(tǒng),但 OGRE 1.5 將會(huì)是最后一個(gè)保留內(nèi)置 GUI 的版本。 OGRE 看來(lái)似乎將專注于向一個(gè)純粹的、然而富于協(xié)作和擴(kuò)展性的圖形引擎發(fā)展,這應(yīng)該得益于它的龐大的社群支持,使得很多事情可以通過(guò)外掛一些更專業(yè)的引擎來(lái)實(shí)現(xiàn),物理引擎使用 ODE 、 Tokamak 、 NovodeX ,網(wǎng)絡(luò)引擎使用 openTNL 、 RakNet 、 eNet ,聲音引擎使用 FMod 、 OpenAL ,以及這個(gè)界面引擎,使用 CEGUI 。外掛現(xiàn)成模塊的好處就是可以專注于一個(gè)方面,開發(fā)一個(gè)五臟俱全的游戲引擎并不是個(gè)容易的事情,市面上最負(fù)盛名的幾個(gè)商業(yè)引擎的開發(fā), Unreal 、Renderware 、 Lithtech ,往往要耗費(fèi)數(shù)百人年,并且在這些商業(yè)引擎中同樣會(huì)使用外掛的商業(yè)庫(kù),在這個(gè)年代,沒(méi)有人可以從頭創(chuàng)建一切。 CEGUI 基于 Unicode ,所以它支持中文字體的顯示, 但是對(duì)中文字符的輸入現(xiàn)在尚未解決,因?yàn)椴粩嘤衼?lái)自中國(guó)的 OGRE + CEGUI 用戶的質(zhì)詢和申請(qǐng),對(duì)中文輸入的支持可能已在考慮中。 CEGUI 的官方主頁(yè)在這里: Crazy Eddie's GUI System1. CEGUI 的 CVS 下載 使用 WinCVS ,使用方法參考 OGRE 一起學(xué) (1) —— 獲取 OGRE 。 (1) 在 WinCVS 主界面左欄選中 "cvshome" ; (2) 從主菜單選擇 [Admin]-[Command Line...] ,彈出 "Command line settings" 面板,在 "Settings" 選項(xiàng)卡的上部輸入框里,輸入如下指令進(jìn)行登陸: cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/crayzedsgui login當(dāng)彈出對(duì)話框問(wèn)訊密碼時(shí)直接按回車。 (3) 成功登陸以后, WinCVS 主界面的下部信息欄會(huì)顯示這樣一條信息: ***** CVS exited normally with code 0 ***** code 0 就表示登陸成功,如果不成功,顯示為 code 1 。 (4) 登陸成功以后,再次打開 "Command line settings" 面板,輸入并運(yùn)行如下指令: cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/crayzedsgui co cegui_mk2CVS 源代碼就開始下載了。耐心等它下載完畢。 (5) 這時(shí)候在 WinCVS 主界面左欄的 “cvshome” 下邊,多了一個(gè) "cegui_mk2" 的文件夾。你可以到硬盤的 F:\cvshome\cegui_mk2\ 看一下,所有的源代碼都在那里了。 2. CEGUI 本體 lib 和 dll 的編譯: 最好使用 VS.Net 2003 的 VC7.1 來(lái)編譯,它對(duì) OGRE 和 CEGUI 的支持都很好。 VC7.0 和 VC7.1 都可以。 (1) 首先要下載編譯 CEGUI 所需的依賴項(xiàng),包括頭文件和庫(kù),下載頁(yè)在這里: http://crayzedsgui.sourceforge.net/modules.php?name=Downloads&d_op=viewdownload&cid=6首先下載 CEGUI Mk-2 Win32 Dependencies: Common Files ,這些是公用的頭文件; 其次根據(jù)你的編譯器版本選擇對(duì)應(yīng)的庫(kù),例如我使用 VC.Net 2003 ,就選擇下載 CEGUI Mk-2 Win32 Dependencies: Libs for MSVC 7.1 。 下載以后分別解壓縮,把頭文件 cegui_mk2-deps-common\dependencies\include 和庫(kù)文件cegui_mk2-deps-vc7.1\dependencies\lib 這兩個(gè)目錄全部復(fù)制到 cvshome\cegui_mk2\dependencies 目錄下。 (2) 現(xiàn)在設(shè)置工作環(huán)境。打開 VS.NET 或 VS.NET 2003 ,在主菜單中選擇 [工具]-[選項(xiàng)...] ,打開 "選項(xiàng)" 面板,在左邊目錄選擇 [項(xiàng)目]-[VC++ 目錄](méi) ,在右欄的 Include 和 Lib 目錄下添加以下路徑: 包含文件: X:\cvshome\cegui_mk2\dependencies\include 庫(kù)文件: X:\cvshome\cegui_mk2\dependencies\lib 注意把這幾條目錄放在目錄列表的最上面。 (3) OK. 現(xiàn)在打開 cvshome\cegui_mk2\makefiles\win32\VC++7.1\CEGUI.sln ,從主菜單中選擇 [生成]-[批生成...] ,打開 "批生成" 面板,點(diǎn)擊右邊的 [全選] 按鈕,然后點(diǎn)擊 [重新生成] 按鈕開始生成,靜待生成結(jié)束。 編譯生成的 *.dll 文件在 cvshome\cegui_mk2\bin 目錄下, *.lib 文件在 cvshome\cegui_mk2\lib 目錄下。 編譯成功以后,為了編譯以后的 CEGUI 相關(guān)項(xiàng)目,我們要在 VS.Net 的工作環(huán)境中添加 CEGUI 的 include 和 lib 目錄: 包含文件: X:\cvshome\cegui_mk2\include 庫(kù)文件: X:\cvshome\cegui_mk2\lib 3. 編譯 CEGUI 示例 (1) 首先來(lái)這里下載幾個(gè) CEGUI 示例: http://crayzedsgui.sourceforge.net/modules.php?name=Downloads&d_op=viewdownload&cid=5其中的 CEGUI under Ogre - Demo 4 和 CEGUI under Ogre - Demo 7 是帶有源文件的,我們挑選 CEGUI under Ogre - Demo 4 來(lái)嘗試編譯。 (2) Demo 下載以后解壓縮,文件目錄不要亂放,要放到 cvshome 目錄下。 然后雙擊 cvshome\ogre_gui_demo4\CEGUIOgre_TestDriver1.sln 打開解決方案。 由于 CEGUI 作者的疏忽, Release 的項(xiàng)目設(shè)置里有幾個(gè)多余的 lua.lib ,會(huì)導(dǎo)致編譯時(shí)因找不到這些庫(kù)而失敗,所以我們需要?jiǎng)h除這幾個(gè)庫(kù)。打開 CEGUIOgre_Demo4 的項(xiàng)目屬性,刪除 Release 配置屬性的 [鏈接器]-[輸入]-[附加依賴項(xiàng)] 條目中的 liblua.lib liblualib.lib libluabind.lib 這幾個(gè)庫(kù)。 (3) 然后生成。 生成的 *.exe 文件在 cvshome\ogre_gui_demo4 的 Release 和 Debug 目錄下。但是你現(xiàn)在就打開運(yùn)行肯定會(huì)失敗。 失敗的原因首先是因?yàn)檫@個(gè) Demo 使用的是最新版本的 OGRE 的頭文件和庫(kù)來(lái)編譯,但是 Release 和 Debug 目錄下放的是老版本的 *.dll ,所以你需要把 cvshome\ogrenew\Samples\Common\bin 的 Release 和 Debug 目錄下的所有 *.dll 都復(fù)制到 cvshome\ogre_gui_demo4 的 Release 和 Debug 目錄下,用你的最新版本覆蓋舊版本,這是一個(gè); 然后, CEGUI 的依賴項(xiàng)中需要一個(gè) *.dll ,在 cvshome\cegui_mk2\dependencies\lib 中有兩個(gè) *.dll ,把 xerces-c_2_5_0.dll 復(fù)制到 cvshome\ogre_gui_demo4\Release ,把 xerces-c_2_5_0D.dll 復(fù)制到 cvshome\ogre_gui_demo4\Debug 。 還有 CEGUI 本體的 *.dll ,在 cvshome\cegui_mk2\bin 目錄下,也要全部復(fù)制過(guò)來(lái)。 *.dll 文件名帶 _d 的是 Debug 版本。 OK. 現(xiàn)在示例可以運(yùn)行了。
作為對(duì) CEGUI 的一個(gè)應(yīng)用實(shí)例,你可以下載下面這個(gè) OGRE 粒子編輯器來(lái)體驗(yàn)一下: ParticleEditor_AlphaDemo
2008年4月28日
C/C++頭文件一覽 C、傳統(tǒng) C++
#include <assert.h> //設(shè)定插入點(diǎn) #include <ctype.h> //字符處理 #include <errno.h> //定義錯(cuò)誤碼 #include <float.h> //浮點(diǎn)數(shù)處理 #include <fstream.h> //文件輸入/輸出 #include <iomanip.h> //參數(shù)化輸入/輸出 #include <iostream.h> //數(shù)據(jù)流輸入/輸出 #include <limits.h> //定義各種數(shù)據(jù)類型最值常量 #include <locale.h> //定義本地化函數(shù) #include <math.h> //定義數(shù)學(xué)函數(shù) #include <stdio.h> //定義輸入/輸出函數(shù) #include <stdlib.h> //定義雜項(xiàng)函數(shù)及內(nèi)存分配函數(shù) #include <string.h> //字符串處理 #include <strstrea.h> //基于數(shù)組的輸入/輸出 #include <time.h> //定義關(guān)于時(shí)間的函數(shù) #include <wchar.h> //寬字符處理及輸入/輸出 #include <wctype.h> //寬字符分類
//////////////////////////////////////////////////////////////////////////
標(biāo)準(zhǔn) C++ (同上的不再注釋)
#include <algorithm> //STL 通用算法 #include <bitset> //STL 位集容器 #include <cctype> #include <cerrno> #include <clocale> #include <cmath> #include <complex> //復(fù)數(shù)類 #include <cstdio> #include <cstdlib> #include <cstring> #include <ctime> #include <deque> //STL 雙端隊(duì)列容器 #include <exception> //異常處理類 #include <fstream> #include <functional> //STL 定義運(yùn)算函數(shù)(代替運(yùn)算符) #include <limits> #include <list> //STL 線性列表容器 #include <map> //STL 映射容器 #include <iomanip> #include <ios> //基本輸入/輸出支持 #include <iosfwd> //輸入/輸出系統(tǒng)使用的前置聲明 #include <iostream> #include <istream> //基本輸入流 #include <ostream> //基本輸出流 #include <queue> //STL 隊(duì)列容器 #include <set> //STL 集合容器 #include <sstream> //基于字符串的流 #include <stack> //STL 堆棧容器 #include <stdexcept> //標(biāo)準(zhǔn)異常類 #include <streambuf> //底層輸入/輸出支持 #include <string> //字符串類 #include <utility> //STL 通用模板類 #include <vector> //STL 動(dòng)態(tài)數(shù)組容器 #include <cwchar> #include <cwctype>
using namespace std;
//////////////////////////////////////////////////////////////////////////
C99 增加
#include <complex.h> //復(fù)數(shù)處理 #include <fenv.h> //浮點(diǎn)環(huán)境 #include <inttypes.h> //整數(shù)格式轉(zhuǎn)換 #include <stdbool.h> //布爾環(huán)境 #include <stdint.h> //整型環(huán)境 #include <tgmath.h> //通用類型數(shù)學(xué)宏
本文轉(zhuǎn)自CSDN,作者WindsonZhL(風(fēng)之子)
|
|
隨筆:13
文章:4
評(píng)論:6
引用:0
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
---|
27 | 28 | 29 | 30 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|
常用鏈接
留言簿(5)
隨筆檔案
文章檔案
收藏夾
搜索
最新評(píng)論

閱讀排行榜
評(píng)論排行榜
|
|