学习CEGUI

如何在CEGUI中使用Lua脚本入门学习 如何在CEGUI中使用Lua脚本入门学习 如何在CEGUI中使用Lua脚本入门学习是本文要介绍的内容,主要是来学习lua脚本语言在CEGUI如何来使用,不多说,具体内容来看本文详解。 AD: 51CTO云计算架构师峰会 抢票进行中! 如何在CEGUI中使用Lua脚本入门学习是本文要介绍的内容,主要是来学习lua脚本语言在CEGUI如 阅读详情

CEGUI(一)

       CEGUI(Crazy Eddie’s GUI http://www.cegui.org.uk )是一套开源的使用C++开发的游戏界面库, 基于LGPL协议. 它能减少游戏开发中繁琐而大量的UI开发工作量. 现有很多游戏开发都会利用或者是借鉴它.

       在学习了解CEGUI之前, 先把CEGUI源代码的环境搭建起来. CEGUI使用了几套开源库Freetype(http://sourceforge.net/projects/freetype),  Glut(http://www.opengl.org/resources/libraries/glut), Xerces(http://xml.apache.org). 更全的信息资料大家可以去相应的网站上面了解. 下载相关库或者源代码后, 先在IDE中设置好, 那么就可以先编译CEGUI.

注意在使用freetype库时, CEGUIBASE工程链接会报错,提示为CEGUIBase error LNK2001: 无法解析的外部符号 _otv_module_class. 解决方法是在Freetype工程中打开ftmodule.h文件, 把FT_USE_MODULE(otv_module_class)这句代码注释掉,然后重新编译既可.

   在运行CEGUI自带的例子时, 需要设置一下工作路径. 因为例子中一些相关的配置,资源文件路径都是使用了相对路径, 如不设置工作路径, 会无法运行DEMO.

       首先运行一下最简单的DEMO,叫Sample_FirstWindow工程,里面的代码很简单,并且有大量的注释。关键的逻辑代码全在initialiseSample()函数中,看下来后可以发现,这里初始化所有UI资源,如图片,字体。

 

 

CEGUI(二)

       例子已经有过基本了解了,那么首先来分析一下CEGUI的资源配置文件。例子的资源都放在sample/datafiles文件夹下。可以发现文件下面包含了各种图片,字体,脚本及其相应的配置文件。

    以各种控件的图片为例,这种资源放在imagesets子文件夹下面,进入后大家可以看见里面有一个imageset.xsd文件,还有一些tga图片和一些后辍为imageset的文件。先打开imageset.xsd文件,可以发现内容全是XML格式的,这里其实定义了一些属性说明,但这些属性是谁在用呢?打开TaharezLook.imageset的文件看看,可以发现其中的秘密。Imageset文件中子结点的名字跟xsd文件中属性定义是相对应的。例如xsd文件的一个结点内容为:

<xsd:complexType name="ImageType">

    <xsd:attribute name="Name" type="xsd:string" use="required"/>

    <xsd:attribute name="XPos" type="xsd:nonNegativeInteger" use="required"/>

    <xsd:attribute name="YPos" type="xsd:nonNegativeInteger" use="required"/>

    <xsd:attribute name="Width" type="xsd:nonNegativeInteger" use="required"/>

    <xsd:attribute name="Height" type="xsd:nonNegativeInteger" use="required"/>

    <xsd:attribute name="XOffset" type="xsd:integer" use="optional" default="0"/>

    <xsd:attribute name="YOffset" type="xsd:integer" use="optional" default="0"/>

</xsd:complexType>

而TaharezLook.imageset文件图片资源结点描述为:

<Image Name="ButtonRightNormal" XPos="96" YPos="20" Width="12" Height="16" />

 

ImageType是图片资源描述的结点,它包含的属性像Name, XPos这些都定义在xsd文件中结点为属性name=”ImageType”中,可以发现这里对应关系的。打开相应的TaharezLook.tga文件,可以发现里面是一些控件图片资源,而它对应的位置在TaharezLook.imageset中定义了。CEGUI的资源管理会根据xsd文件内容取得imageset文件中的内容结构,而imageset文件会告诉资源管理从tga文件中取到相应的图片纹理资源。感觉配置文件是有点多,但这样非常灵活,能根据不同需求定义不同的控件属性,按自己的方式制作纹理资源。

    再看看其它的资源及相应的配置文件,像字体。可以发现跟图片纹理的做法是一样的。如果自己要使用它,明白了配置文件定义方式,很容易把相应的文件改成自己需要的。很方便的把CEGUI加入到自己的工程中应用,也不会给开发人员添加很大的麻烦。

 

 

CEGUI(三)

    怎样把CEGUI应用到我们自己的工程中去呢?首先从CEGUI自带的例子Sample_FirstWindow分析,这个工程只有一个类,叫做Sample_FirstWindow, 它是从CEGuiSample父类派生而来。里面只有一个函数,叫InitialiseSample(),界面的初始化全部在这。追踪到最里面,会发现CEGuiD3D9BaseApplication, Win32AppHelp两个类,跟系统窗体和DX联系的都在这里面处理了。

    明白原理了,那么做个测试,把CEGUI添加到一个DX工程中来。步骤分为以下几步:

1.  把CEGUI的头文件,资源文件(datafiles文件夹),库文件(注意包含freetype2, xerecs, glut)全部复制到工程下面

2.  在工程中把头文件添加进来,并设置好路径,引用lib

3.  在相应的代码中添加好CEGUI的代码,就是初始化,渲染,消息处理。具体代码可以参考一下例子

 
CEGUI 动画系统 CEGUI的动画系统是一个强大而灵活的工具,可以帮助开发者为GUI应用程序创建各种吸引人的动画效果。以上示例只是一个简单的演示,实际上CEGUI的动画系统还提供了更多功能和选项,可以满足更复杂的动画需求。其中一个重要的特性是其动画系统,它允许开发者创建各种动画效果来增强用户界面的交互性和吸引力。当然,CEGUI的动画系统还提供了更多功能和灵活性,开发者可以根据需要进行扩展和定制。下面是一个简单示例,展示了如何使用CEGUI动画系统创建一个渐变动画效果。 阅读详情

相关推荐

CEGUI深入详解--CEGUI架构、消息处理、窗体、XML、LUA

1.CEGUI基本库,CEGUIBase,这个库是CEGUI最早的库,第一版的CEGUI就有这个工程。 2.CEGUI的渲染集,CEGUIFalagardWRBase库,这个库在现在这一版改动是最大的。 3.XML的解析库,共有四个库和1.2.1中介绍的四个对应。但CEGUI的解决方案里只使用了expatParser一个工程。 4.图像解码库,所有工程名带codec的都是图像解码的工程。共有四个工程。 5.渲染库,工程里共有两个CEGUI渲染工程,一个是OpenGL的一个是DirectX9的。 6.脚本模块库,共有三个工程,工程名都含有Lua,表明CEGUI通过Lua实现脚本的支持,我们前面已经讲过,本书使用LuaPlus作为CEGUI的Lua封装库。

学习CEGUI基本知识

先来个引子,CEGUI是一个游戏UI库,开源,使用XML作资源定位,支持lua脚本,支持多字节语言的显示,其功能可以说是十分强大的,而且非常灵活,目前的稳定版本是0.5,可见其离发布还有一段距离,bug和未完成的东西都不少,然而这也是它的魅力之一,我们可以对其进行修改和扩充。使用CEGUI完全可以制作出一流水准的游戏UI来。       其次,也是比较主要的,它有几款指定的编辑器,其实UI库都差不

bluekane的专栏 3613

CEGUI 原版教程

html及编译好的chm格式的CEGUI原版文档。

【CEGUI】概念简介

CEGUI 背景 Crazy Eddie’s GUI(MIT License),一款开源的GUI(图形用户界面)库。使用C++实现,遵循OOP,其宗旨: games developers who should be spending their time creating great games, not building GUI sub-systems. 目前最新版为0.8.7,官网(http://cegui.org.uk/) 下文以0.8.7版本进行介绍。 架构图 ImageCode:图形解

林多 2328

CEGUI深入解析 cegui框架解析

CEGUI深入解析,完整版 大家快下载啊 CEGUI深入解析,完整版 大家快下载啊

CEGUI教程---教你如何使用CEGUI库

CEGUI(Crazy Eddie’s GUI http://www.cegui.org.uk)是一个自由免费的GUI库,基于LGPL协议,使用C++实现,完全面向对象设计。CEGUI开发者的目的是希望能够让游戏开发人员从繁琐的GUI实现细节中抽身出来,以便有更多的开发时间可以放在游戏性上。 CEGUI的渲染需要3D图形API的支持,如OpenGL或Direct3D。另外,使用更高级的图形库也是可以的,比如OGRE、Irrlicht和RenderWare等,关键需求可以简化为二点: 纹理(Texture)的支持直接写屏(RHW的顶点格式、正交投影、或者使用shader实现) 本书截止日时,CEGUI的最新版本是0.6.0(本书的讨论也是基于此版本),本书光盘提供了SDK和全部源码的下载。 除此之外,CEGUI还同步提供了官方界面编辑器LayoutEditor和ImageSet编辑器,以方便UI和图像集的制作。作为界面编辑器,它需要系统级界面以提供编辑器操作,0.3.0版是基于MFC实现的;而在0.4.0版本以后,改为基于wxWidgets(跨平台的本地UI框架,这里的UI指Window操作系统底层,如:Windows、Unix和Mac,详见http://www.wxwidgets.org)实现。 目前将CEGUI作为游戏界面库开发的游戏已经有好多种,国内的天龙八部,巨人等游戏就是很好的例子。 CEGUI的功能是非常强大的,而且使用也非常的灵活,可以和脚本配合。可以通过配置文件自定义窗口外观。通过布局文件实现窗口布局等等特性,使得游戏的界面开发更加方便。

CEGUI基础

文章中部分内容和思路来自《CEGUI深入解析》简介1.CEGUI(Crazy Eddie’s GUI http://www.cegui.org.uk)是一个自由免费的GUI库,基于LGPL协议,使用C++实现,完全面向对象设计2.CEGUI的渲染需要3D图形API的支持,如OpenGL或Direct3D3.CEGUI封装了FreeImage,SILLY,DevILI,Corona解析库,另外还自己...

SuperYang_的博客 2847

一文入门Qwen-Agent【附实战代码】

Qwen-Agent 是一个开源框架,用于开发基于 Qwen 模型的 AI 智能体应用,一文带你入门使用

m0_55303420的博客 1873

探索CEGUI:强大的跨平台图形用户界面库

探索CEGUI:强大的跨平台图形用户界面库 cegui Crazy Eddie's GUI library is a versatile, fast, adjustable, multi-platform, C++ library for creating graphical user interfaces for ga...

gitblog_00078的博客 1029

4.7W防削顶单声道D类音频功率放大器HT6872介绍

HT6872是一款低EMI,防削顶失真,单声道免滤波D类音频功率放大器。在6.5V电源,10%THD+N,4Ω负载条件下,输出4.71W功率,在各类音频终端应用中维持高效率并提供AB类放大器的性能。

weichen_78的博客 4697

汽车BMS技术分享及其HIL测试方案

在全球碳中和目标的战略驱动下,新能源汽车产业正以指数级速度重塑交通出行格局。动力电池作为电动汽车的"心脏",其性能与安全性不仅直接决定了车辆的续航里程、使用寿命等关键指标,更深刻影响着消费者对电动汽车的市场接受度。而电池管理系统(Battery Management System, BMS)是动力电池安全运行与性能释放的核心技术支撑。

Speedgoat的博客 2683

CEGUI学习

先来个引子,CEGUI是一个游戏UI库,开源,使用XML作资源定位,支持lua脚本,支持多字节语言的显示,其功能可以说是十分强大的,而且非常灵活,目前的稳定版本是0.5,可见其离发布还有一段距离,bug和未完成的东西都不少,然而这也是它的魅力之一,我们可以对其进行修改和扩充。使用CEGUI完全可以制作出一流水准的游戏UI来。 其次,也是比较主要的,它有几款指定的编辑器,其实UI库都

feiyun1987的专栏 1212

零基础学习大气污染模式(WRF、WRF-chem、smoke、camx等)

零基础学习大气污染模式(WRF、WRF-chem、smoke、camx等)

weixin_56135535的博客 653

CEGUI学习笔记一--FirstWindow和FalagardDemo1分析

CEGUI学习笔记一--FirstWindow和FalagardDemo1分析 前言         该系列文章将记录我在学习CEGUI(0.6.0)时碰到的一些问题和得出的心得体会,适合没有任何CEGUI基础的朋友看。我会不定期的将自己的学习整理成笔记,同时由于我是本月刚接触CEGUI,也是正在学习的阶段,所以热烈欢迎各路朋友和我探讨、交流、指教。最终目的是想在基于OGRE图像库

Hi_Panda 706

【CUDA Runtime】第一个“Hello World“程序

CUDA(Compute Unified Device Architecture)是 NVIDIA 提供的一个并行计算平台和编程模型,旨在通过利用 GPU 的强大计算能力来加速计算密集型应用。对于许多开发者而言,开始学习 CUDA 编程的第一步通常是编写一个简单的“Hello World”程序。尽管 CUDA 的实际应用远远超出一个简单的例子,但这个初步的示例能帮助开发者快速入门,理解基本的 CUDA 编程流程。

m0_62599305的博客 1504

《手把手教你修复过期K8s集群证书:记一次K8s集群起死回生实录》

今天本想打开半年前部署的K8s测试集群跑个Demo,结果`kubectl`直接报错`certificate has expired`!作为一名云原生老司机,我决定把这次'抢救'过程记录下来,手把手带大家解决这个运维常见问题。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 3777

CEGUI学习笔记五-- 如何如何扩展CEGUI库(一)

   CEGUI学习笔记五-- 如何如何扩展CEGUI库(一)   本文以FrameWindow为对象,粗略的讲述了如何扩展CEGUI库,从而添加一个全新的基础控件类型。   需求: 如果你使用过FrameWindow,那么你一定可以发现,FrameWindow的4个角落都可以进行缩放。如果我们需要固定某个角呢?比如制作一个聊天框,它

踏入神的领域 2万+

GitHub 国内加速完全指南(最新):镜像、代理与优化技巧

在国内使用 GitHub 时,经常遇到 clone 慢、打开仓库卡、GitHub Actions 不稳定 等问题。下面是整理好的 GitHub 国内镜像和加速方法大全,高效使用 GitHub。

moton2017的博客 1万+

CEGUI学习心得汇总

大学时就用过CEGUI,但是基本上就是用,没有其他任何思考。现在做的东西多了,思考也多了。同事推荐看一本国人写的《CEGUI深入解析》,一开始看了一些,但没看进去,做了项目一个多月,有些实际的问题,再去看就有收获了。此文章就收集一些使用CEGUI的心得,以便回顾或者帮助他人。更多系统权威资料还请见CEGUI官网。 Subscriber类对象之间不能直接赋值 我们有的时候想保存一些Sub

xujiezhige的专栏 3008

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

CEGUI学习笔记六-- 使用CEGUI解决具体问题

CEGUI学习笔记六-- 使用CEGUI解决具体问题  本文讲述了如何实现以下几个具体问题:1、设置控件的背景为透明。2、以D3D9为渲染层的时候,Tooltip工作不正常(一闪而过)。3、模拟MessageBox。   1、设置控件的背景为透明有3种方法来解决这个问题:1、修改Imageset文件,提供相关的透明位图;修改Looknfeel文件,使用透明位图进行绘制;

踏入神的领域 2万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

CEGUI学习笔记

写3d程序没个像样的GUI界面可不行,最近没啥事也来捣腾一下CEGUI。果然是个不错的东东,用起来很方便,新版本已经支持dx10了,就是对中文的支持还是那么“不主动”。1,中文显示,这个到处都能找到解决方法。就是装载一个支持中文显示的font,然后保存程序代码的时候选择正确的utf8编码。有的说保存成“带签名utf8”,可是我的保存成“不带签名utf8”才正确。2,

feiyun1987的专栏 2346

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

CEGUI学习笔记七--如何扩展CEGUI控件库

CEGUI学习笔记七--如何扩展CEGUI控件库 本文是扩展CEGUI控件库的第2部分,对FalButton.CPP文件的分析记录。 目的是探究下如何去控制 Renderer,从而彻底实现一个CEGUI没有的控件类型。 但是分析未完成,希望这些半成品能对大家有用。 PS:由于公司的网络限制,所以Blog很长时间未更新。家里还没电脑,上班偷偷写的.... 下次将整理下单独编

Hi_Panda 885

CEGUI学习笔记--如何扩展CEGUI控件库

本文是扩展CEGUI控件库的第2部分,对FalButton.CPP文件的分析记录。目的是探究下如何去控制 Renderer,从而彻底实现一个CEGUI没有的控件类型。但是分析未完成,希望这些半成品能对大家有用。PS:由于公司的网络限制,所以Blog很长时间未更新。家里还没电脑,上班偷偷写的....下次将整理下单独编译CEGUI,并给出CEGUI与Ogre结合的详细步骤。//

痞子龙3D编程 1392

CEGUI学习笔记1. CEGUI 配置和运行

CEGUI 配置和运行 设置资源目录: 1.在工作目录设置资源文件夹(datafiles)路径 2.设置附加包含目录 D:\CEGUI\CEGUI-SDK-0.7.2-vc9\为安装路径 D:\CEGUI\CEGUI-SDK-0.7.2-vc9\cegui\include D:\CEGUI\CEGUI-SDK-0.7.2-vc9\dependencies\includ...

weixin_30674525的博客 155

CEGUI学习笔记一--FirstWindow和FalagardDemo1分析 (转kun(小龙))

  前言        该系列文章将记录我在学习CEGUI(0.6.0)时碰到的一些问题和得出的心得体会,适合没有任何CEGUI基础的朋友看。我会不定期的将自己的学习整理成笔记,同时由于我是本月刚接触CEGUI,也是正在学习的阶段,所以热烈欢迎各路朋友和我探讨、交流、指教。最终目的是想在基于OGRE图像库的项目中应用CEGUI,希望我这些文字对你有所帮助。   CEGU

bluekane的专栏 1447
下一篇: 视频压缩管理器(VCM)
barrassed
博客等级 码龄23年 8粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值