用cegui.log如何实现如图所示的效果啊,...

CEGUI界面编辑器的设计与实现--《计算机与现代化》2013年07期
CEGUI界面编辑器的设计与实现
【摘要】:CEGUI(Crazy Eddie’s GUI)是一个开源的、完全面向对象的界面开发库,它为游戏用户提供了自由免费的界面设计框架。本文首先介绍CEGUI的整体架构,进而阐述其解析布局文件生成游戏界面的流程,最后,在结合图形用户界面(Graphical User Interface,GUI)库Qt和CEGUI的基础上,搭建界面编辑器QtCELayout。通过在QtCELayout中编辑制作游戏界面并导出相应的布局文件,用户能更方便地对CEGUI界面进行快速设计,从而极大地减少界面开发的时间和精力。
【作者单位】:
【关键词】:
【基金】:
【分类号】:TP311.52【正文快照】:
0引言随着计算机技术的日益革新和图形图像技术的不断成熟,游戏产业也正蓬勃地发展。作为游戏的重要组成部分,界面设计对整个游戏质量的影响是不言而喻的,而其中CEGUI(Crazy Eddie’s GUI)便是游戏专用的界面开发库。它能帮助用户从繁琐的界面实现细节中抽身出来,以便有更多
欢迎:、、)
支持CAJ、PDF文件格式,仅支持PDF格式
【参考文献】
中国期刊全文数据库
曹步文;刘先锋;周忠华;;[J];计算机时代;2008年02期
黄洪;林辉;王奔;;[J];计算机应用与软件;2011年10期
张雪洁,王志坚,许峰,李静燕;[J];计算机与现代化;2004年05期
贾振元;司立坤;王树祥;;[J];计算机工程与设计;2005年12期
黄伟强;夏科艺;;[J];计算机系统应用;2010年01期
张凤丽;张承瑞;王金江;;[J];制造技术与机床;2008年02期
中国硕士学位论文全文数据库
张磊;[D];西南交通大学;2007年
董超;[D];大连理工大学;2009年
【共引文献】
中国期刊全文数据库
任义;凌玉华;廖力清;;[J];安徽电力;2006年04期
古沐松;张修军;;[J];成都大学学报(自然科学版);2009年03期
任义;凌玉华;廖力清;;[J];长沙通信职业技术学院学报;2006年04期
王振铎;;[J];电脑知识与技术;2009年09期
高俊彦;黄春红;;[J];广东科技;2011年02期
王佑;奚学程;赵万生;豆尚成;赵福春;;[J];电加工与模具;2012年04期
张承宇;张云华;;[J];工业控制计算机;2013年04期
盛震宇;冯钧;;[J];电子器件;2013年04期
崔占飞;刘东;鲁跃峰;于文鹏;;[J];华东电力;2012年05期
贾长云;朱敏;伍俊明;;[J];淮海工学院学报(自然科学版);2006年03期
中国硕士学位论文全文数据库
冯效栋;[D];中国海洋大学;2010年
侯红学;[D];西南交通大学;2011年
杨梅;[D];电子科技大学;2011年
牛朋云;[D];华中科技大学;2011年
崔占飞;[D];上海交通大学;2012年
解明君;[D];大连交通大学;2011年
李朝峰;[D];浙江工业大学;2011年
林博佳;[D];北京邮电大学;2012年
李亚伟;[D];北方工业大学;2006年
李辉;[D];国防科学技术大学;2005年
【二级参考文献】
中国期刊全文数据库
徐永亮;[J];电脑知识与技术;2005年03期
黄丽民,王华;[J];辽宁工程技术大学学报;2004年04期
张浬萍;杨军;;[J];工程图学学报;2008年01期
支晓斌;周海燕;;[J];甘肃科技;2006年09期
郑庆良,张翔,杨莹;[J];杭州电子工业学院学报;2004年04期
肖道举,杨素娟,周开锋,陈晓苏;[J];华中科技大学学报(自然科学版);2002年04期
蔡汉明;宋金霞;肖举;;[J];CAD/CAM与制造业信息化;2007年11期
刘先锋;曹步文;;[J];计算机工程与应用;2006年32期
马金山;;[J];机械管理开发;2007年01期
陈奇;[J];计算机工程;2001年10期
中国硕士学位论文全文数据库
秦可;[D];浙江大学;2005年
刘业辉;[D];武汉理工大学;2005年
赵海;[D];四川大学;2005年
【相似文献】
中国期刊全文数据库
安吉宇;于涛;李拥军;孙铁铮;张航;;[J];电子器件;2006年02期
陈云鹤;徐晶;;[J];微型电脑应用;2006年08期
王建民;张宏壮;;[J];微计算机信息;2008年20期
陈琦;;[J];科技信息;2008年33期
王浩南;刘益成;;[J];电脑开发与应用;2010年01期
魏鑫;陈辉强;高飞;;[J];计算机与现代化;2010年09期
胡俊;章红宇;吴煊;赵元黎;;[J];核电子学与探测技术;2011年05期
王奇;;[J];信息技术;2009年06期
张小进;;[J];电脑编程技巧与维护;2010年13期
张小进;;[J];电脑编程技巧与维护;2010年19期
中国重要会议论文全文数据库
雷革;赵籍九;;[A];信息科学与微电子技术:中国科协第三届青年学术年会论文集[C];1998年
姚延栋;吴健;;[A];第十届全国少数民族语言文字信息处理学术研讨会论文集[C];2005年
王广忠;何青;;[A];全国冶金自动化信息网2009年会论文集[C];2009年
徐洪文;;[A];第九届全国计算(机)化学学术会议论文摘要集[C];2007年
张鹏;徐鹏;;[A];Java技术及应用的进展——第七届中国Java技术及应用交流大会文集[C];2004年
窦振中;崔小年;李凯;;[A];第四届和谐人机环境联合学术会议论文集[C];2008年
鲁昌华;田苗;浦香君;;[A];第六届全国信息获取与处理学术会议论文集(3)[C];2008年
姚延栋;吴健;;[A];第十届全国少数民族语言文字信息处理学术研讨会论文集[C];2005年
冯智年;吴友宇;;[A];第七届全国氢能学术会议论文集[C];2006年
冯智年;吴友宇;;[A];第七届全国氢能学术会议专辑[C];2006年
中国重要报纸全文数据库
本报记者 汤铭;[N];计算机世界;2009年
小丸子;[N];江苏经济报;2002年
马坤;[N];电脑报;2004年
;[N];网络世界;2009年
高庆狮;[N];大众科技报;2010年
特约作者 蔡泽华 陈惠民;[N];电脑报;2011年
张习文;[N];电脑报;2001年
邱江勇 李佳师
整理;[N];中国电子报;2008年
StoreAge公司市场营销总监
F[N];网络世界;2009年
沈建苗;[N];计算机世界;2009年
中国博士学位论文全文数据库
方敏;[D];苏州大学;2009年
李小将;[D];西北工业大学;2002年
钱思佑;[D];中国科学技术大学;2010年
唐学俊;[D];华中科技大学;2011年
中国硕士学位论文全文数据库
邹明;[D];华中师范大学;2011年
吴鑫毅;[D];厦门大学;2009年
李艳民;[D];重庆大学;2007年
仲芊芊;[D];电子科技大学;2010年
邓剑波;[D];电子科技大学;2005年
雷冰;[D];大连理工大学;2006年
朱艳荺;[D];西安电子科技大学;2009年
冉丹;[D];吉林大学;2009年
吴常福;[D];内蒙古大学;2009年
易旭东;[D];四川大学;2003年
&快捷付款方式
&订购知网充值卡
400-819-9993
《中国学术期刊(光盘版)》电子杂志社有限公司
同方知网数字出版技术股份有限公司
地址:北京清华大学 84-48信箱 大众知识服务
出版物经营许可证 新出发京批字第直0595号
订购热线:400-819-82499
服务热线:010--
在线咨询:
传真:010-
京公网安备75号转载请注明出处:帘卷西风的专栏(http://blog.csdn.net/ljxfblog)最近在整理自己几年前一直在研究的一套代码,使用OGRE+CEGUI开发的客户端引擎框架。当年自己倾心研究的东西,终究还是没能挺过时间的车轮,逐渐失去价值。以后估计再也没有时间去扩展和使用了,所以打算整理好之后将之逐步开源,希望能给喜欢研究这类端游技术的朋友吧。 今天最先放出一套UI编辑器的源码吧,CEGUI自己也有编辑器,但是是使用类似MFC的开源软件 wxWidgets 实现的。开源的代码能给其他人带来好处,但是也有他的弱点,不够友好,缺乏一定功底,轻易不能用起来。我当年也是没能搞定 wxWidgets,始终没能编译出来,汗颜!!!所以我按官方编辑器思路,用MFC重写了一份。大部分功能都实现了,也能够正常使用。 大家可以看看效果,个人认为还是比较方便使用的。
我个人的设计思路是,不希望工具依赖太多的开发库,所以这套编辑器,只依赖D3D的库和CEGUI的库,并没有使用OGRE的渲染模块。发现今天CSDN官网和CSDN下载都挂了,登录不上去,下载连接治好等明天放上来了。后面我会陆陆续续把后面的框架整理出来开源,如果有朋友喜欢就可以拿去修改和扩展。
最新教程周点击榜
微信扫一扫推荐这篇日记的豆列
······VS2010 + WIN7x64:Ogre1.7.x 与CEGUI0.7.x的环境搭建及具体事例操作 - 博客频道 - CSDN.NET
因为喜欢,所以追求...
分类:WindowsC/C++Ogre
一、环境搭建
软件准备:
所需软件有OGRE:OgreSDK_vc10_v1-7-4
&&&&&&&&&&&&&&&&&&& & CEGUI:CEGUI-0.7.5.zip
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& & CEGUI-DEPS-0.7.x-r3-vc10.zip
&&&&&&&&&&&&&&&&&&& & Direcx:DXSDK_Jun10.exe
这四个软件开发包,均可在其相应的官网上进行下载。
OGRE环境搭建
(1)、将OgreSDK_vc10_v1-7-4解压至自己所需要的目录
如我的:D:\Software\OgreSDK_vc10_v1-7-4,如下图所示
(2)、配置环境变量
&&&&&&&&&& 我用的是win7,(XP直接在“我的电脑”-〉属性-〉高级-〉环境设置)
添加“OGRE_HOME”,内容为上步路经。
&&&&&&&&&&&&&
安装Direcx
WIN7下,我的安装路径为“C:\Program Files (x86)\Microsoft DirectXSDK (June 2010)”。
之后,检查环境变量里是否有“DXSDK_DIR”
如果没有添加即可
(1)、解压CEGUI-0.7.5至自己的路径
我的为“D:\Software\CEGUI-0.7.5”
(2)、设置环境变量
&&&&&&&&&&
(3)、修改CEGUI的config参数
&&&&&&&&&& 在路径“D:\Software\CEGUI-0.7.5\projects\premake”下(以后都用我的路径了,自己根据自己的路径找到相应文件),找到“config.lua”,用文本打开,修改其中的参数。将下列红字参数后的改成自己相对应的。
OGRE_PATHS = {&D:\Software\OgreSDK_vc10_v1-7-4&, &include/OGRE&,&lib& }
OIS_PATHS= { &D:\Software\OgreSDK_vc10_v1-7-4&,&include/OIS&, &lib& }
OPENGL_RENDERER= true
DIRECT3D9_RENDERER= true
DIRECT3D10_RENDERER= false
DIRECT3D11_RENDERER= false
IRRLICHT_RENDERER= false
OGRE_RENDERER = true
NULL_RENDERER = false
SAMPLES_GL= true
SAMPLES_DX9= true
SAMPLES_DX10= false
SAMPLES_IRRLICHT= false
SAMPLES_OGRE = true
修改完成后保存。
(4)、解压“CEGUI-DEPS-0.7.x-r3-vc10.zip”文件
&&&&&&&&&& 1)、解压此文件,将其中的“dependencies”拷贝到“D:\Software\CEGUI-0.7.5”中,如下图所示
&&&&&&&&&& 2)将“dependencies\bin”文件下的DLL文件拷贝到“D:\Software\CEGUI-0.7.5\bin”中。
(5)、打开Build
&&&&&&&&&& 还在上步路径下找到“build_vs2008.bat”及“build_samples_vs2008.bat”直接运行他们,确认运行正确的方法:可以在当前目录下看到“CEGUI.sln”及“CEGUISamples.sln”。如果你选用的是CEGUI-0.7.6可能无法生成“CEGUISamples.sln”,那就换回CEGUI-0.7.5吧。
(6)、编译CEGUI(Debug)
&&&&&&&&&& 在上一步后,CEGUI-0.7.5文件目录中的lib文件是空的。我们需要自己生成所需要的lib文件。
注:由于Debug生成的是“*_d.lib”而Release为“*.lib”,根据需要编译CEGUI,但是最好是分别把两种都生成完,以后直接用。
&&&&&&&&&& 1)、打开项目
&&&&&&&&&&&&&&&&&&& 路径“D:\Software\CEGUI-0.7.5\projects\premake”下找到CEGUI.sln,打开
因为用的是VS2010
所以有一个升级过程,直接点下一步知道完成。
&&&&&&&&&& 2)、配置项目属性
&&&&&&&&&& 进入“CEGUIOgreRenderer”属性页,如下图所示
l& 编辑“C/C++”-&“附加包含目录”,添加如下行
$(CEGUI_HOME)\Samples\common\include
$(CEGUI_HOME)\dependencies\include
$(CEGUI_HOME)\
$(CEGUI_HOME)\cegui\include
$(OGRE_HOME)\include
$(OGRE_HOME)\boost_1_47
$(OGRE_HOME)\include\OGRE
l& “链接器-&常规-&附加库目录”
$(CEGUI_HOME)\lib
$(CEGUI_HOME)\dependencies\lib
$(OGRE_HOME)\boost_1_47\lib
$(OGRE_HOME)\lib\debug(如果为Release模式则改为$(OGRE_HOME)\lib\release)
l& 编译生成。
测试CEGUISamples
首先,更改WIN7的用户权限,否则调试时出错,方法如下
“计算机-&管理-&本地用户和组”
选择用户“Administrator”属性,将“账号已禁用”去掉勾选如上图所示。
(1)、打开“CEGUISamples.sln”
在路径“D:\Software\CEGUI-0.7.5\projects\premake”下
(2)、以下配置的是“Debug”情况下的属性
l& “调试”:工作目录:“$(CEGUI_HOME)\bin”
命令:$(TargetDir)\$(TargetName)_d.exe
(因为默认的命令只是调用*.exe但是为了区别Debug与Release版,生成的文件分别为*_d.exe与*.exe,而我们要警醒Debug调试,所以要写为$(TargetName)_d.exe)
l& “C/C++”:附加包目录:“$(OGRE_HOME)\
$(OGRE_HOME)\boost_1_47;
$(OGRE_HOME)\include\OIS;
$(OGRE_HOME)\include\OGRE;
$(CEGUI_HOME)\;”
l& “链接器”:附加库目录:“$(CEGUI_HOME)\
$(CEGUI_HOME)\dependencies\
$(OGRE_HOME)\boost_1_47\
$(OGRE_HOME)\lib\(当为Release时为$(OGRE_HOME)\lib\)”
&&&&&&&&&&&&&&&&&& (3)、编译整个方案,中间有错误,一般是没有相应的DLL文件,
如:缺少“OIS_d.dll、OgreMain_d.dll”可到“D:\Software\OgreSDK_vc10_v1-7-4\bin\”文件下找到
如有问题发邮件(非诚勿扰)。
到此,CEGUI配置完成。下面开始将OGRE与其进行结合。
二、OGRE与CEGUI结合
上面的状态必须都通过才能进行此步。
OGRE与CEGUI能单独运行
(1)、添加代码,测试代码如下所示。
其实现的效果只是在OGRE界面中添加了一个鼠标跟一个窗口(“Quit”)。
鼠标未添加移动效果。
&ExampleApplication.h&
//...........................needadd
&CEGUIImage.h&
&CEGUISystem.h&
&CEGUILogger.h&
&CEGUISchemeManager.h&
&CEGUIWindow.h&
&CEGUIWindowManager.h&
&elements/CEGUIPushButton.h&
&RendererModules/Ogre/CEGUIOgreRenderer.h&
&RendererModules/Ogre/CEGUIOgreResourceProvider.h&
&RendererModules/Ogre/CEGUIOgreGeometryBuffer.h&
//..............needadd
CEGUI::MouseButtonconvertOgreButtonToCegui(int buttonID)
using namespace OIS;
using namespace CEGUI;
switch (buttonID)
case OIS::MB_Left:
&&&& returnCEGUI::LeftB
case OIS::MB_Right:
&&&& returnCEGUI::RightB
case OIS::MB_Middle:
&&&& returnCEGUI::MiddleB
&&&& returnCEGUI::LeftB
//RunFrameListener
class RunFrameListener :
publicExampleFrameListener{
&&&& RunFrameListener(RenderWindow* win, Camera*cam, CEGUI::Renderer* renderer)
&&&&&&&& : ExampleFrameListener(win, cam,
false, false)
&&&&&&&& mGUIRenderer =
&&&& CEGUI::Renderer* mGUIR
class RunApplication :
publicExampleApplication
&&&& CEGUI::OgreRenderer* mogreR
&&&& CEGUI::Window* mEditorGUIS
&&&& RunApplication() :mogreRenderer(0),mEditorGUISheet(0)
&&&& voidcreateCamera()
&&&&&&&& mCamera = mSceneMgr-&createCamera(&PlayerCam&);
&&&&&&&& mCamera-&setNearClipDistance(5);
&&&& voidcreateScene()
&&&&&&&& mogreRenderer =&CEGUI::OgreRenderer::bootstrapSystem();
&&&&&&&& CEGUI::Logger::getSingleton().setLoggingLevel(CEGUI::Informative);
&&&&&&&& CEGUI::SchemeManager::getSingleton().create(&TaharezLook.scheme&);
&&&&&&&& CEGUI::System::getSingleton().setDefaultMouseCursor(&TaharezLook&,&MouseArrow&);
&&&&&&&& CEGUI::MouseCursor::getSingleton().setImage(&TaharezLook&,&MouseMoveCursor&);
&&&&&&&& mEditorGUISheet =CEGUI::WindowManager::getSingleton().createWindow(&DefaultWindow&,&Root&);
&&&&&&&& CEGUI::System::getSingleton().setGUISheet(mEditorGUISheet);
&&&&&&&& CEGUI::FrameWindow* fwnd =(CEGUI::FrameWindow*)CEGUI::WindowManager::getSingleton().createWindow(&TaharezLook/FrameWindow&,&Demo Window&);
&&&&&&&& mEditorGUISheet-&addChildWindow(fwnd);
&&&&&&&& fwnd-&setPosition(CEGUI::UVector2(cegui_reldim(0.35f),cegui_reldim(0.45f)));
&&&&&&&& fwnd-&setSize(CEGUI::UVector2(cegui_reldim(0.35f),cegui_reldim(0.1f)));
&&&&&&&& fwnd-&setText(&QUIT&);
&&&& voidcreateFrameListener()
mFrameListener = newRunFrameListener(mWindow,mCamera,mogreRenderer);
&&&&&&&& mRoot-&addFrameListener(mFrameListener); }
#if OGRE_PLATFORM ==OGRE_PLATFORM_WIN32
#defineWIN32_LEAN_AND_MEAN
#include&windows.h&
INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT )
int main(int argc,char **argv)
{// Createapplication object
&&&& try {
&&&&&&&& app.go();
&&&& } catch( Exception& e ) {
#if OGRE_PLATFORM ==OGRE_PLATFORM_WIN32
&&&&&&&& MessageBoxA( NULL,e.getFullDescription().c_str(), &An exception has occurred!&, MB_OK |MB_ICONERROR | MB_TASKMODAL);
&&&&&&&& fprintf(stderr, &An exception hasoccurred: %s &,
&&&&&&&&&&&&& e.getFullDescription().c_str());
&&&& return 0;
//////////////////////////////////////////////////////////////////////////////////////////////////////
(2)、开始配置项目属性(Debug)(Release的话可以仿照进行相应更改)
l& “调试”:命令:$(OGRE_HOME)\bin\debug\$(TargetFileName)
工作目录:$(OGRE_HOME)\bin\debug
l& “C\C++”:附加包含目录:$(CEGUI_HOME)\Samples\common\
$(CEGUI_HOME)\dependencies\
$(CEGUI_HOME)\;$(CEGUI_HOME)\cegui\
$(OGRE_HOME)\$(OGRE_HOME)\boost_1_47;
$(OGRE_HOME)\include\OIS;$(OGRE_HOME)\include\OGRE;
l& “链接器”:输出文件:$(Ogre_Home)\bin\debug\$(TargetName)$(TargetExt)
附加库目录:$(CEGUI_HOME)\
$(CEGUI_HOME)\dependencies\
$(OGRE_HOME)\boost_1_47\
$(OGRE_HOME)\lib\
$(OGRE_HOME)\lib\
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&输入:附加依赖项:OgreMain_d.
CEGUIBase_d.
CEGUIOgreRenderer_d.
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&系统:子系统:窗口 (/SUBSYSTEM:WINDOWS)
(3)、到此一般不会调试成功,因为还需要一些文件的更改
l& 将文件“D:\Software\CEGUI-0.7.5\bin”中的所有文件,拷贝到“D:\Software\OgreSDK_vc10_v1-7-4\bin\debug”文件下。其实不用全部拷,只是我懒得一个个比对了。
l& 最后:配置“resources_d.cfg”中的资源,因为要调用datafiles中的资源,因此需要配置资源路径,以找到datafiles中的资源。
将datafiles的文件路径拷过来(根据自己的文件位置进行添加)。
如我的:添加如下到resources_d.cfg中
FileSystem=../../datafiles/animations
FileSystem=../../datafiles/configs
FileSystem=../../datafiles/fonts
FileSystem=../../datafiles/imagesets
FileSystem=../../datafiles/layouts
FileSystem=../../datafiles/looknfeel
FileSystem=../../datafiles/lua_scripts
FileSystem=../../datafiles/schemes
FileSystem=../../datafiles/xml_schemas
三、结束。
以上就是我配置OGRE+CEGUI+VS2010+WIN7x64,网上虽然有很多类似教程,但是大多都是较低版本,虽然有些乱但是最终成功了,所以啊,不要选太高的版本,否则总会出这样或那样的问题。如果大家有比较好的简单的方法,或者疑问,可以发Email给我,我尽我最大努力帮助解决问题。呵呵…
排名:第11460名
(9)(63)(15)(24)(41)(11)(30)(14)(3)(4)(25)(3)(2)(6)(3)(12)(4)(3)(15)(3)(1)}

我要回帖

更多关于 cegui.log 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信