您的位置:首页 > 产品设计 > UI/UE

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

2014-03-01 20:46 627 查看
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函数里键入如下代码

点击(此处)折叠或打开

Ogre::ResourceGroupManager::getSingleton().initialiseAllResourceGroups();

mPlatform=new MyGUI::OgrePlatform();

mPlatform->initialise(mWindow,mSceneMgr);

mGui=new MyGUI::Gui;

mGui->initialise();

MyGUI::ResourceManager::getInstance().load("MyGUI_BlueWhiteTheme.xml");

MyGUI::LayoutManager::getInstance().load("test.layout");

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文件,使其达到自己想要的效果。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: