转载:OGRE一起学(六)最简单的游戏窗口代码

示例代码 :

点击下载本节示例代码

文件目录 :

OGRE\Samples\OGRE_YC_001_Simplest 
main.cpp 
Simplest.h 
OGRE_YC_001_Simplest.vcproj 

使用方法 :

  • (1) 打开 VS.NET ,在主菜单中选择 [工具]-[选项...] ,打开 "选项" 面板,在 [项目]-[VC++ 目录] 的 “包含文件” 目录下添加下面这个路径:
E:\Desktop\Learning\OGRE\Samples\Common\include 

如图:

Image:Yanchen61.jpg

这样设置的意图是使本节和以后的所有示例都能方便地直接包含进 OGRE\Samples\Common\include 目录下的 ExampleApplication.h 和 ExampleFrameListener.h 两个头文件,这两个头文件定义了一个简单通用的应用程序框架,在这个通用框架里集成了应用程序的设置、运行环境的创建、画面更新、消息界面、输入检测、镜头控制等等的一系列现成方法,这两个头文件放在 OGRE\Samples\Common\include 目录下,被所有的示例文件所引用,因为这两个文件已经帮我们做好了一些最基本的工作,所以可以有助于我们在一开始就直接切入到 OGRE 的实用层面,省略一些初期的繁琐步骤。 这两个头文件,如果不感兴趣,在开始的时候都不用看。如果比较感兴趣,可以试着改一些参数,比方说,我的就修改了窗口的背景颜色和镜头的移动速度:

ExampleApplication.h :

    virtual void createViewports(void)

    {

        Viewport* vp = mWindow->addViewport(mCamera);
 
        vp->setBackgroundColour(ColourValue(0.3f,0.4f,0.5f));    // 设置背景颜色

        // ...

    }
ExampleFrameListener.h :

ExampleFrameListener(RenderWindow* win, Camera* cam, bool useBufferedInputKeys = false, bool useBufferedInputMouse = false)

   {

       // ...

       mRotateSpeed = 36;         // 镜头旋转速度

       mMoveSpeed = 500;          // 镜头移动速度

       // ...

   }
  • (2) 使用 VS.NET 打开 OGRE\Samples\Samples.sln ;
  • (3) 调出解决方案资源管理器,在解决方案"Samples"上右击,在弹出的右键关联菜单中选择 [添加]-[现有项目...] ,选择 OGRE_YC_001_Simplest.vcproj 并确定;
  • (4) 因为 OGRE_YC_001_Simplest.vcproj 里面没有包含工作目录的信息,所以还需要再设置一下工作目录,这样我们可以直接在 VC.NET 中运行和调试生成的 OGRE 程序。

在解决方案资源管理器的 OGRE_YC_001_Simplest 项目上右击,在弹出的关联菜单中选择 [属性] ,弹出项目属性页,添加下列选项:

Debug 
调试: 工作目录:..\Common\bin\Debug 
Release 
调试: 工作目录:..\Common\bin\Release 
  • (5) 从主菜单中选择 [生成]-[批生成...] ,弹出 "批生成" 面板,仅仅勾选 OGRE_YC_001_Simplest 项目的 Debug 和 Release 配置,然后点击右边的 [生成] 或 [重新生成] 按钮,如下图,然后静待项目生成 Debug 和 Release 两个版本;

Image:Yanchen62.jpg

  • (6) 生成的 exe 文件在 OGRE\Samples\Common\bin 的 Release 和 Debug 文件夹里,可以运行看看,效果如图:

Image:Yanchen63.jpg

本章以后的示例代码编译办法与此相同,以后不再敷叙。

解说正文 :

这个是最简单的 OGRE 应用程序代码。

在 Simplest.h 中,它定义了公用的示例应用程序基类 ExampleApplication 的派生类 SimplestApplication ,并重新定义了 createScene 方法(这一步不能省略,因为 createScene 是个纯虚函数)。

然后在 main.cpp 中,简单创建一个 SimplestApplication 实例并启动它:

    SimplestApplication app;
    try {

        app.go();

    } catch( Ogre::Exception& e ) {

        MessageBox( ... );

    }
就这么简单。而且在以后章节的示例中, main.cpp 基本上还是这么几行短短的代码。 

取自"http://ogre3d.cn/wiki/index.php?title=%E8%BD%AC%E8%BD%BD:OGRE%E4%B8%80%E8%B5%B7%E5%AD%A6%EF%BC%88%E5%85%AD%EF%BC%89%E6%9C%80%E7%AE%80%E5%8D%95%E7%9A%84%E6%B8%B8%E6%88%8F%E7%AA%97%E5%8F%A3%E4%BB%A3%E7%A0%81"

posted @ 2009-06-08 13:18  回忆1919  阅读(767)  评论(0编辑  收藏  举报