OGRE CEGUI Layout cegui教程

//CEGUI

CEGUI::System *mSystem;

CEGUI::OgreCEGUIRenderer *mRenderer;

//通过已有的window和scenemanager创建CEGUI渲染器

//创建mRenderer实例,导入.scheme文件,设置默认鼠标指针图像和默认字体

mRenderer = new CEGUI::OgreCEGUIRenderer(mWindow, Ogre::RENDER_QUEUE_OVERLAY, false,3000, mSceneMgr);

////通过已有的CEGUI渲染器构造渲染系统

mSystem = new CEGUI::System(mRenderer);

//读入scheme文件,这里使用TaharezLookSkin,scheme文件中又关联到其他文件如font,imageset,looknfeel

CEGUI::SchemeManager::getSingleton().loadScheme((CEGUI::utf8*)"TaharezLookSkin.scheme");

mSystem->setDefaultMouseCursor((CEGUI::utf8*)"TaharezLook", (CEGUI::utf8*)"MouseArrow");

//要用到中文字,使用中文字体,simhei(黑体)是自己要添加的还要制作一个.font文件,放到相应的位置

//并在scheme文件中“调用”(添加字体选择)

mSystem->setDefaultFont((CEGUI::utf8*)"simhei-12");

/*cegui窗口界面布局有两种办法,一是手动创建,二是使用编辑器如CELayoutEditor(如图)制作layout(xml)文件

下面分别使用两种方法制作A按钮和B视图为例



*/

/*方法一:

创建两个窗口,一个A按钮窗口,一个B视图窗口

DefaultGUISheet,TaharezLook/Button为窗口类型,有关窗口类型的知识这里不探讨

createWindow(类型,命名),A按钮名"quit",B视图名"root/viewtu"

然后设置窗口的文字和大小,窗口内可以有子窗口,"root"窗口为跟窗口

*/

//CEGUI::WindowManager *win = CEGUI::WindowManager::getSingletonPtr();

//CEGUI::Window *sheet = win->createWindow("DefaultGUISheet", "root");

////A按钮窗口

//CEGUI::Window *quit = win->createWindow("TaharezLook/Button", "quit");

//quit->setText((CEGUI::utf8*)Ogre::UTFString(L"退出").asUTF8_c_str());

//quit->setSize(CEGUI::UVector2(CEGUI::UDim(0.15,0), CEGUI::UDim(0.05, 0)));

//sheet->addChildWindow(quit);

////B视图窗口

////setProperty中使用了名为"RttImage"的纹理映射到B视图窗口中

//CEGUI::Window *si = win->createWindow((CEGUI::utf8*)"TaharezLook/StaticImage","root/viewtu");

//si->setSize(CEGUI::UVector2(CEGUI::UDim(0.25f, 0), CEGUI::UDim(0.25f, 0)));

//si->setPosition(CEGUI::UVector2(CEGUI::UDim(0.75f, 0), CEGUI::UDim(0, 0)));

////si->setProperty("Image", CEGUI::PropertyHelper::imageToString(&imageSet->getImage((CEGUI::utf8*)"RttImage")));

//sheet->addChildWindow(si);

//mSystem->setGUISheet(sheet);

/*方法二:

直接导入做好的layout文件,直接回去文件中的窗口"quit"和"Root/viewtu"(如图)

之后再进行调用,方法二相对方法一灵活方便,推荐

*/



//CEGUI::Window* sheet2 = CEGUI::WindowManager::getSingleton().loadWindowLayout((CEGUI::utf8*)"mylayout.layout");

//CEGUI::Window * textureWindow=CEGUI::WindowManager::getSingletonPtr()->getWindow("Root/viewtu");

//CEGUI::Window *quit = CEGUI::WindowManager::getSingletonPtr()->getWindow("quit");

//quit->setText((CEGUI::utf8*)Ogre::UTFString(L"退出").asUTF8_c_str());

//textureWindow->setProperty("Image", CEGUI::PropertyHelper::imageToString(&imageSet->getImage((CEGUI::utf8*)"RttImage")));

//mSystem->setGUISheet(sheet2);

//简化
OGRE CEGUI Layout cegui教程

//将CEGUI::WindowManager::getSingleton()值存储于窗口管理变量wmgr便于书写

CEGUI::WindowManager& wmgr = CEGUI::WindowManager::getSingleton();

//mylayout.layout文件是用CELayoutEditor制作的

//在原OGRESDK中的GUI只有TaharezLook的skin,而在CELayoutEditor还有Vanilla和WindowsLook

//也就是说DEMO中的layout都是使用TaharezLook的skin,如果要用其他的skin,还要处理将相关联的文件

//否则会出错

  

CEGUI::Window* sheet2 = wmgr.loadWindowLayout((CEGUI::utf8*)"myoutlay.layout");

CEGUI::Window * textureWindow=wmgr.getWindow("Root/viewtu");

CEGUI::Window *quit = wmgr.getWindow("quit");

quit->setText((CEGUI::utf8*)Ogre::UTFString(L"退出").asUTF8_c_str());

//textureWindow->setProperty("Image", CEGUI::PropertyHelper::imageToString(&imageSet->getImage((CEGUI::utf8*)"RttImage")));

mSystem->setGUISheet(sheet2);

//响应“quit”按钮,放于侦听类中,"quit"名称要对应

CEGUI::WindowManager *wmgr = CEGUI::WindowManager::getSingletonPtr();

CEGUI::Window *quit = wmgr->getWindow((CEGUI::utf8*)"quit");

quit->subscribeEvent(CEGUI::PushButton::EventClicked,

CEGUI::Event::Subscriber(&MainFrameListener::quit, this));

  

爱华网本文地址 » http://www.413yy.cn/a/25101011/88704.html

更多阅读

photoshop学习教程

photoshop学习教程——简介photoshop是一款强大的图片处理软件,用它强大的功能,可以使我们达成很多目的。今天我就来教大家用ps去水印的方法。photoshop学习教程——工具/原料?psphotoshop学习教程——方法/步骤photoshop学习教程 1

安卓系统手机如何刷机教程 安卓系统手机刷机教程

安卓系统手机如何刷机教程——简介手机系统就跟电脑系统是一样,刷机也就跟安装电脑系统一样。手机刷机就是改变你手机的系统,比如你手机是安卓2.0的,你可以刷成安卓4.0的。安卓系统手机如何刷机教程——工具/原料电脑安卓手机安卓系

手机贴膜方法技巧图文教程 贴膜技巧

多专用用具比如皮老虎镜头笔等可能普通用户没有,只要使用贴膜附带的擦镜布将屏幕擦干净就可以了,教程采用了PSP作为对象是方便您了解贴膜过程,手机贴膜过程是一样的。贴膜前的准备工作贴膜应该在一个灰尘相对比较少的室内进行,切勿在室

声明:《OGRE CEGUI Layout cegui教程》为网友造梦先生分享!如侵犯到您的合法权益请联系我们删除