MyGUI3.2.0+Ogre1.8.1开发详解之第一个MyGUI程序

mygui是一款简单、易用的开源图形界面开发库,主要面向对象是游戏的3D界面,下面是它的官方介绍
MyGUI是为游戏和3D应用程序创建图形用户界面(GUI)的一个库。 mygui的主要目标是:速度,灵活性和易用性。(出自MyGUI官网)

官方网站:http://mygui.info
下载mygui之后,编译,构建就不必细说了,网上有详细的教程。
Ogre要使用1.8.1 SDK版本,请大家下载相应的版本。
顺便说一下,以后我们构建Ogre工程都用AppWizard进行,这样就可以省去好多不必要的麻烦,好了,废话不多说,破文开始
开发工具;VS2008 
Ogre版本:1.8.1 SDK
MyGUI版本:3.2.0
平台:Win32
代码生成方式:Ogre AppWizard for VS2008

首先,新建一个Ogre Application工程,在VC++工程模板中选择Ogre Application,然后在打开的对话框点击完成即可

我们先编译一下这个工程,如果你的配置没有错误的话,就能看到怪兽的头了
然后我们打开  你的工程名.cpp,在createScene函数里键入如下代码

点击(此处)折叠或打开

  1.     Ogre::ResourceGroupManager::getSingleton().initialiseAllResourceGroups();
  2.     mPlatform=new MyGUI::OgrePlatform();
  3.     mPlatform->initialise(mWindow,mSceneMgr);
  4.     mGui=new MyGUI::Gui;
  5.     mGui->initialise();
  6.     MyGUI::ResourceManager::getInstance().load("MyGUI_BlueWhiteTheme.xml");
  7.     MyGUI::LayoutManager::getInstance().load("test.layout");

  8.     MyGUI::Button* m_pButton=MyGUI::Gui::getInstance().findWidget<MyGUI::Button>("Quit",false);
解释一下:
第一句Ogre::ResourseGroup::getSingleton().initialiseAllResourseGroups()是通过调用 initialiseAllResourseGroups()函数初始化ogre的资源组,也就是 ResourseGroup,这是Ogre里的一个管理资源的类,MyGUI经常与资源打交道,所以要使用MyGUI里的资源必须先初始化资源组。
第二句和第三句是初始化MyGUI的Ogre平台的指针mPlatform,当然,在构造函数之前必须声明MyGUI::OgrePlatform* mPlatform
第四句和第五句是初始化MyGUI的图形界面指针mGui,这个也必须在构造函数之前声明MyGUI::Gui* mGui
第六句调用MyGUI::ResourceManager::getInstance().load()函数载入一个.xml资源文件,以便渲染之用,相当于初始化资源。
第七句同样是调用load()载入,所不同的是这次是载入一个.layout文件,对应的类自然就是LayerManager
第八句通过MyGUI::Button* m_pButton声明一个button的指针,实质上就是通过findWidget创建一个按钮,第一个参数是按钮的名称,第二个参数是按钮是凸起还是凹下,true代表凹下,false代表凸起
最终效果:

看到这里,也许有人会问,咱们刚刚不是创建了一个名为"Quit"的button吗?怎么会有两个呢?另一个是从何而来呢?其实奥秘就在test.layout文件里,不信我们可以用MyGUI自带的工具layoutEditor打开看看:

果不其然,问题果然出在test.layout文件里!
其实,layoutEditor不仅可以查看.layout文件,还可以根据自己的需要创建.layout文件,使其达到自己想要的效果。

猜你喜欢

转载自blog.csdn.net/u012878073/article/details/20233015