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文件,使其达到自己想要的效果。
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文件,使其达到自己想要的效果。
相关文章推荐
- iBatis开发详解(1)----------开发第一个程序
- 大数据Spark “蘑菇云”行动前传第3课:在IDE下开发第一个Scala程序透彻解析及Scala控制结构详解实战
- 【Ogre开发】之二:创建自己的第一个Ogre程序
- MyEclipse用xfire插件写第一个Web service接口的程序步骤详解
- Java开发环境的搭建及第一个Java程序的创建
- OGRE 1.9 的第一个程序(OGRE HelloWorld程序)
- Discuz7.0程序二次开发必备:目录详解 (转)Discuz7.0程序二次开发必备:目录详解
- Java程序员从笨鸟到菜鸟之(五十一)细谈Hibernate(二)开发第一个hibernate基本详解
- Android 软件开发之如何使用Eclipse Debug调试程序详解(十二)
- Android程序开发中单选按钮(RadioGroup)的使用详解
- JAVA开发:第一个java程序
- 第97讲:使用SBT开发Akka第一个案例环境搭建详解学习笔记
- iOS开发:第一个iOS程序分析——代理,生命周期函数
- windows服务程序开发详解
- Linux下使用Eclipse开发第一个C++程序
- 微信小程序开发详解 6 测测你是三国杀中的谁---调查测试类小程序
- 织梦dedeCMS二次开发文档手册 程序目录详解以及数据表结构字段
- android开发之动画的详解 整理资料 Android开发程序小冰整理
- Linux下C++的编程——开发环境搭建与第一个程序
- storm 开发系列一 第一个程序