本教程适用于ogre初学者以及基于打补丁的VS2008项目者。
必备条件:
vs2008(SP1);OgreSDK1.6.5 DirectX正确安装
步骤1、设置环境变量
注意事项:
1)Ogre务必安装在英文目录下!不然无法运行(以格式D:\OgreSDK为参考)。
2)添加了新的环境变量,重启计算机才能生效。
步骤2、在vs2008中新建一个Win32 空项目并设置其属性
1)工具->选项->项目和解决方案->VC++目录
显示以下内容的目录->包含文件
添加: D:\OgreSDK\samples\include
D:\OgreSDK\include
D:\DirectX\include
显示以下内容的目录->库文件
添加:D:\OgreSDK\lib
配图:
2)项目->**属性->配置属性->链接器->输入(**表示你建立的工程名称)
附加依赖项: OgreMain_d.lib
OIS_d.lib
CEGUIBase_d.lib
OgreGUIRenderer_d.lib (_d表示debug 版本的)
或者点开它直接添加
3)项目->属性->配置属性->调试->工作目录
工作目录:D:\OgreSDK\bin\debug
完成上述步骤,你就可以开始你的Ogre旅程了,在你刚新建的工程里添加一个cpp文件,将下列代码拷贝其中,编译并运行,若看到一个黑乎乎的背景中有一个忍者,说明成功完成配置。
测试配置成功与否的程序:
#include "ExampleApplication.h"
class TutorialApplication : public ExampleApplication
{
private:
Ogre::SceneNode* _SinbadNode;
protected:
void createScene(void)
{
//adding an entity named "Ninya" from demo
Ogre::SceneNode* node=mSceneMgr->createSceneNode("node1");
mSceneMgr->getRootSceneNode()->addChild(node);
Ogre::Entity* Sinbad=mSceneMgr->createEntity("Ninja","ninja.mesh");
_SinbadNode=node->createChildSceneNode("NinjaNode");
_SinbadNode->setPosition(Ogre::Vector3(0,0,0));
_SinbadNode->attachObject(Sinbad);
_SinbadNode->yaw(Degree(180));
}
public:
TutorialApplication(){}
~TutorialApplication(){}
};
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
#define WIN32_LEAN_AND_MEAN
#include "windows.h"
INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine,
INT )
#else
int main(int argc, char **argv)
#endif
{
// Create application object
TutorialApplication app;
try {
app.go();
} catch( Exception& e ) {
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
MessageBox( NULL, e.getFullDescription().c_str(), "An exception has occured!", MB_OK |
MB_ICONERROR | MB_TASKMODAL);
#else
fprintf(stderr, "An exception has occured: %s\n",
e.getFullDescription().c_str());
#endif
}return 0;
}
可能遇见的问题:
1.error C2664: “MessageBoxW”: 不能将参数 2 从“const char *”转换为“LPCWSTR”
解决:项目菜单->属性->配置属性->常规->字符集->unicode改为未设置
2.error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用