游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2905|回复: 0

在Ubuntu 7.04 Feisty Fawn上安装OGRE,并用Anjuta建立你的第一个

[复制链接]

7

主题

36

帖子

51

积分

注册会员

Rank: 2

积分
51
发表于 2007-5-4 15:04:00 | 显示全部楼层 |阅读模式


面对官方Wiki上多如牛毛的安装介绍,弄得我是头晕眼花、不知其所云。我是在Ubuntu下用Anjuta开发。官方提供的方法还是5.04或6.10的,并没有最新的。不得以,只好自立更生。在研究了网上介绍的各种方法后,选取了如下这个方法。下面我要介绍的方法其实是很简单的。经过我亲自验证无误。因此写下这篇小文章,以期能够对一些朋友有些帮助。

一、安装环境

本文Ubuntu 7.04桌面版,我是从光盘安装的。如果你在安装上有问题,请查找Ubuntu官方网站寻求帮助,这不是本文的重点。

二、安装步骤

1、到QBIC Project下载ogre_cvs.sh脚本文件,以普通用户身份运行这个脚本,它就会自动下载编译安装OGRE,CEGUI,FREEIMAGE,OIS,Cg库文件以及其它所需的依赖包。在开始时要通过agp-get下载依赖包,你会被问及超级用户密码。后面,你还会被问到OGRE CVS的密码,由于我们是匿名用户,所以直接敲回车。

安装会花掉你一些时间,安装结束后,

OGRE库文件将被安装在以下位置:

*头文件在 /usr/include/OGRE
**.so文件在 /usr/lib和/usr/lib/OGRE

CEGUI库文件将被安装在以下位置:

*头文件在 /usr/include/CEGUI
**.so files在 /usr/lib

FreeImage库文件将被安装在以下位置:

** 头文件在 /usr/include
* *.so files在 /usr/lib

OIS库文件将被安装在以下位置:

* 头文件在 /usr/include/OIS
* *.so files在 /usr/lib

Cg库文件将被安装在以下位置:

* 头文件在 /usr/include/Cg
* *.so files在 /usr/lib

2、我也看过Anjuta官方主页上的2.X版,由于还没有最后release,所以我决定还是安装稳定版。Ubuntu源中就有1.2.4a,用新立得软件包管理器安装就行。

三、安装后的相关设定

安装后,别忘记进行相关设定,菜单栏中的设定->编译器与连接器设定。将上面提到的安装的头文件和库文件,分别添加到引用路径和函数库路径中。将OgreMain,CEGUIBase,CEGUIOgreRenderer添加到函数库中。在选项中的CFLAGS内填入-DEXT_HASH。

如果你想用例子架构开发你的程序,你还需要将OGRE安装目录/ogrenew/Samples/Common/include/添加到引用路径中。

确保plugins.cfg和resources.cfg这两个文件与main.cc在同一个文件夹而且是可执行的。然后,一定要编辑一下这两个文件,以保证文件里写的路径正确无误。否则,OGRE设置对话框中可能没有任何渲染库,或者是你在屏幕上或Ogre.log中收到一条类似Description: ../../Media/packs/OgreCore.zip - error whilst opening archive: Unable to read zip file这样的错误提示。

四、建立你的第一个程序

1、将main.cc里的代码替换为如下代码:


  1. #include "ExampleApplication.h"

  2. // Declare a subclass of the ExampleFrameListener class
  3. class MyListener : public ExampleFrameListener
  4. {
  5. public:
  6.     MyListener(RenderWindow* win, Camera* cam) : ExampleFrameListener(win, cam)
  7.     {
  8.     }

  9.     bool frameStarted(const FrameEvent& evt)
  10.     {
  11.         return ExampleFrameListener::frameStarted(evt);        
  12.     }

  13.     bool frameEnded(const FrameEvent& evt)
  14.     {
  15.         return ExampleFrameListener::frameEnded(evt);        
  16.     }
  17. };

  18. // Declare a subclass of the ExampleApplication class
  19. class SampleApp : public ExampleApplication
  20. {
  21. public:
  22.    SampleApp()
  23.    {
  24.    }

  25. protected:
  26.    // Define what is in the scene
  27.    void createScene(void)
  28.    {
  29.        // put your scene creation in here
  30.    }
  31.   
  32.    // Create new frame listener
  33.    void createFrameListener(void)
  34.    {
  35.        mFrameListener = new MyListener(mWindow, mCamera);
  36.        mRoot->addFrameListener(mFrameListener);
  37.    }
  38. };

  39. int main(int argc, char **argv)
  40. {
  41.     // Instantiate our subclass
  42.     SampleApp myApp;

  43.     try {
  44.         // ExampleApplication provides a go method, which starts the rendering.
  45.         myApp.go();
  46.     }
  47.     catch (Ogre::Exception& e) {
  48.         std::cerr << "Exception:\n";
  49.         std::cerr << e.getFullDescription().c_str() << "\n";
  50.         return 1;
  51.     }

  52. return 0;
  53. }
复制代码


2、编译运行它。

3、程序正确运行后,会首先出现OGRE设置对话框,点确定后,启动程序。程序是一个空无一物的黑色屏幕,仅包含OGRE标志和每秒帧数显示屏。因为我们还没添加任何东西。按Esc退出。

五、后记:

虽然例子架构有许多优点,但并不是必须使用例子架构。对于更大一些的项目,也许你想写自己的架构,或者使用其他人写的架构和引擎

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-8-15 02:40

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表