你的第一个CEGUI程序
强烈建议仔细研究CEGUISample程序!因为那里介绍了它的一些基本用法,其实最后在游戏当中出现的,也就是这些例子的变化而已。
这里我会引导你写一个第一个自己的简单的CEGUI程序,它使用CEGUISampleHelper提供的框架,使用OpenGL渲染。
这是在CEGUI自己给的Sample程序基础上简化、简化、再简化得出的,目的是让大家对CEGUI程序有一个简单明了的认识,其实就是这么简单。里面只定义了一个背景,一个静态文本,写着“Hello!CEGUI”。
具体的,有几块重要的东西。有一些包含在框架里了,如下:
DefaultResourceProvider,这个是CEGUI的一个全局的东西,可以在任何地方操作它的指针,但是一般只需要在一开始操作它。
在CEGuiOpenGLBaseApplication当中,你可以看见下面这样的代码,这就是在使用DefaultResourceProvider的指针在设置资源的路径,你可以毫不客气地复制粘贴到你的工程里
CEGUI::DefaultResourceProvider* rp = static_cast<CEGUI::DefaultResourceProvider*>
(CEGUI::System::getSingleton().getResourceProvider());
rp->setResourceGroupDirectory("schemes", "../datafiles/schemes/");
rp->setResourceGroupDirectory("imagesets", "../datafiles/imagesets/");
rp->setResourceGroupDirectory("fonts", "../datafiles/fonts/");
rp->setResourceGroupDirectory("layouts", "../datafiles/layouts/");
rp->setResourceGroupDirectory("looknfeels", "../datafiles/looknfeel/");
rp->setResourceGroupDirectory("lua_scripts", "../datafiles/lua_scripts/");
下面是整个的代码:
#ifndef _TDemo0_h_
#define _TDemo0_h_
#include "CEGuiSample.h"
#include "CEGUI.h"
// 例子类
class TDemo0Sample : public CEGuiSample
...{
public:
// 用于实现初始化的方法
bool initialiseSample();
// 关闭
void cleanupSample(void);
};
#endif //_TDemo0_h_
#include "TDemo0.h"
#include "CEGUI.h"
#include "CEGuiBaseApplication.h"
#include <cstdlib>
/**//*************************************************************************
程序入口
*************************************************************************/
int main(int argc, char *argv[])
...{
TDemo0Sample app;
return app.run();
}
/**//*************************************************************************
实现初始化方法
*************************************************************************/
bool TDemo0Sample::initialiseSample()
...{
using namespace CEGUI;
// 得到窗口管理器
WindowManager& winMgr = WindowManager::getSingleton();
// 装载资源,只说一下scheme就行,其它的system自己去调
SchemeManager::getSingleton().loadScheme("TaharezLook.scheme");
// 鼠标指针很特殊,但是其实是一样的用法
System::getSingleton().setDefaultMouseCursor("TaharezLook", "MouseArrow");
// 字体
FontManager::getSingleton().createFont("Commonwealth-10.font");
// 这里创建了一个window。第一个参数指定了这个window的类型,第二个参数是名字。
Window* background = winMgr.createWindow("TaharezLook/StaticImage", "background_wnd");
// 设置位置和大小
background->setPosition(UVector2(cegui_reldim(0), cegui_reldim( 0)));
background->setSize(UVector2(cegui_reldim(1), cegui_reldim( 1)));
// 这就要把刚才那个background用作最底层的窗口了
System::getSingleton().setGUISheet(background);
// 其实这个在这里没啥用,我认为,只是多了一层窗口。在任何UI系统当中所有的窗口都是一样的。
Window* sheet = winMgr.createWindow("DefaultWindow", "root_wnd");
// 叠加上
background->addChildWindow(sheet);
// 又创建了一个窗口,这回是一个静态的文本
Window* st = winMgr.createWindow("TaharezLook/StaticText", "TextWindow/Static");
sheet->addChildWindow(st);
st->setPosition(UVector2(cegui_reldim(0.45f), cegui_reldim( 0.23f)));
st->setSize(UVector2(cegui_reldim(0.15f), cegui_reldim( 0.05f)));
st->setText("Hello!CEGUI");
return true;
}
/**//*************************************************************************
*************************************************************************/
void TDemo0Sample::cleanupSample()
...{
// 啥事也不做
}
好了,现在可以新建一个工程,模仿其它例子的工程结构,然后用这个代码,编译,就OK了。
这就是(或者几乎是一个)最简单的CEGUI程序,其实就是这么简单。
分享到:
相关推荐
CEGUI提供了多种界面设计工具,如CELayoutEditor用于布局设计,CEImagesetEditor用于皮肤编辑。这些工具使得非编程背景的设计人员也能参与到界面设计中,提高了开发效率和设计质量。 将CEGUI与osg结合,可以充分...
描述中的"cegui深入详解及相关sdk editor等工具"表明我们将深入学习CEGUI的工作原理、API以及如何使用SDK(Software Development Kit)和相关编辑器来创建和管理GUI元素。 标签 "cegui" 明确了讨论的主题。 现在,...
该教程含路径设置,路径名称注意,具体配置步骤,环境搭建说明书。
寻找热泵最佳压力的优化算法 输入Cop和高压值,以找到最大化Cop的最佳高压 Optimization algorithm to find optimal pressure of heat pump Inputs of Cop and high pressure values to find optimal high pressure that maxes out COP
用友大易2024年AI才有道-AI在企业招聘中的应用现状报告51页.pdf
基于ATP软件的10kV并联电容暂态过程仿真分析与研究,ATP驱动下的10kV并联电容暂态过程精细仿真分析,基于ATP的10kV并联电容暂态过程仿真 ,基于ATP的; 10kV并联电容; 暂态过程; 仿真,ATP算法在10kV电容暂态仿真过程的应用研究
勾正科技恒者行远思者常新-2023H1中国家庭智能大屏行业发展白皮书83页.pdf
“中国房产数据库-各省出租房屋面积 (平方米) 2005-2017年”是一份系统记录中国31个省份在13年间出租房屋面积变化的社会经济数据集,覆盖2005年至2017年间的年度数据。该数据库整合了国家统计局及地方统计年鉴的公开信息,包含各省(含港澳台)的出租房屋面积总量、增长率及区域分布特征,数据格式提供Excel和GIS矢量文件,支持空间分析与时间序列对比。 数据显示,2005-2017年间全国出租房屋面积从1.2亿平方米增至2.8亿平方米,年均增长率达6.7%。区域差异显著:东部沿海地区因经济活跃度高,出租房屋面积占比超60%,其中广东省以年均8.2%的增速居首;中西部省份如四川、河南等则呈现阶段性波动,与人口回流及城镇化政策调整密切相关。 该数据为研究房地产市场供需关系、人口流动模式及城市化进程提供了量化依据。例如,出租房屋面积增长率与GDP增速的相关性分析可揭示经济活力对住房租赁市场的影响;结合户籍人口与常住人口数据,可评估流动人口住房保障政策的实施效果。数据还可用于分析住房租赁市场与房价调控政策的互动关系,为完善住房保障体系提供实证支持。
ABB机器人二次开发实战:C#读写数据操作指南,获取与写入点位信息功能详解,ABB机器人二次开发实战:C#读写数据操作指南,获取与写入点位信息应用,ABB机器人二次开发 C#读取和写入数据,可以获取点位信息及写入点位信息。 自己写的ABB机器人类,机器人常规操作功能都有,非常适合进行二次开发。 ,ABB机器人二次开发; C#读取和写入数据; 读取点位信息; 写入点位信息; 机器人常规操作功能。,ABB机器人二次开发:C#读取与写入数据,轻松获取与编辑点位信息
wireshark log for ethercat
深入解析:Fluent仿真技术在气冷涡轮叶片冷却性能数值模拟中的应用与教学视频指南,《气冷涡轮叶片冷却性能数值模拟——Fluent仿真技术与教学视频》,Fluent仿真,气冷涡轮叶片冷却性能数值模拟(含教学视频) ,根据您提供的内容,可以提炼出以下三个核心关键词: Fluent仿真;气冷涡轮叶片;冷却性能数值模拟 用分号分隔的结果为:Fluent仿真;气冷涡轮叶片;冷却性能数值模拟 希望以上结果符合您的要求。,好的,以下是根据您提供的关键信息所提炼的标题: 气冷涡轮叶片Fluent仿真及冷却性能数值模拟教学视频 这个标题直接明了地概括了您所提供的信息,希望符合您的要求。
linux http 服务器 get put 请求
酷云互动2019智能大屏生态发展白皮书精简版47页.pdf
系统选用B/S模式,后端应用springboot框架,前端应用vue框架, MySQL为后台数据库。 本系统基于java设计的各项功能,数据库服务器端采用了Mysql作为后台数据库,使Web与数据库紧密联系起来。 在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。
更多毕业设计https://cv2022.blog.csdn.net/article/details/124463185
欧姆龙PLC案例分享:新能源锂电行业全无加密程序,公司级框架,NJ Socket功能PC端作为服务器,欧姆龙NJ NXPLC全程序案例:锂电机械人控制,设备状态监控与报警管理,三色灯与气缸控制等功能模块详解,欧姆龙NJ NXPLC 全ST程序案例,全程序无加密,公司级框架,锂电新能源行业FB库文件,NJ Socket功能PC端作为服务器,NJ作为客户端,汇川机械人控制,设备状态机,设备PPM,运行时间,报警时间,OK产量,NG数量,蜂鸣器三色灯控制功能块,气缸报警功能块,气缸真空动作功能块,轴控制功能块,等等 ,核心关键词:欧姆龙NJ NXPLC; 全ST程序案例; 无加密; 公司级框架; 锂电新能源; FB库文件; NJ Socket功能; PC端服务器; NJ客户端; 汇川机械人控制; 设备状态机; 运行时间; 报警时间; OK产量; NG数量; 蜂鸣器三色灯控制; 气缸报警功能块; 气缸真空动作功能块; 轴控制功能块。,欧姆龙PLC程序案例:新能源锂电设备状态监控与控制功能实现
基于Simulink的35kV变电站三相故障仿真研究:深入探讨变压器与线路的故障响应与保护策略,基于Simulink的35kV变电站三相故障仿真研究:变压器与线路的联合仿真分析,基于simulink的35kv变电站三相故障仿真,包含变压器和线路 ,基于Simulink的35kv变电站仿真; 三相故障; 变压器; 线路。,基于Simulink的35kV变电站变压器与线路三相故障仿真研究
三菱FX3U六轴标准程序:轴点动、回零、相对定位与绝对定位的控制,包含扩展的1PG定位模块和多功能气缸驱动的转盘流水线,三菱FX3U六轴标准程序:轴点动、回零、相对定位、绝对定位,搭配气缸与DD马达控制的转盘实现多工位流水作业,三菱FX3U六轴标准程序,程序包含本体3轴控制,扩展3个1PG定位模块,一共六轴。 程序有轴点动控制,回零控制,相对定位,绝对定位。 另有气缸数个,一个大是DD马达控制的转盘,整个是转盘多工位流水作业方式 ,核心关键词:三菱FX3U六轴标准程序; 3轴控制; 1PG定位模块; 轴点动控制; 回零控制; 相对定位; 绝对定位; DD马达控制转盘; 转盘多工位流水作业。,三菱FX3U六轴程序控制:转盘流水作业及三轴+定位模块综合运动控制
《都市供求信息网》是一个基于JavaWeb技术开发的毕业设计项目,旨在为用户提供便捷的信息发布和交流平台。该系统拥有友好的界面与强大的功能,适合各类信息的发布与查询。如果你对JavaWeb开发感兴趣,欢迎下载完整资源,助力你的学习与实践!
基于雨流计数法的双层协同优化配置:源-荷-储系统中的能量存储优化,基于雨流计数法的源荷储双层协同优化配置:储能系统寿命评估与充放电曲线优化,基于雨流计数法的源-荷-储双层协同优化配置 关键词:双层规划 雨流计算法 储能优化配置 参考文档:《储能系统容量优化配置及全寿命周期经济性评估方法研究》第三章 仿真平台:MATLAB CPLEX 主要内容:代码主要做的是一个源荷储优化配置的问题,采用双层优化,外层优化目标的求解依赖于内层优化的储能系统充放电曲线,基于储能系统充放电曲线,采用雨流计数法电池健康状态数学模型,对决策变量储能功率和容量的储能系统寿命年限进行评估;内层储能系统充放电曲线的优化受外层储能功率和容量决策变量的影响,不同的功率和容量下,储能装置的优化充放电功率曲线存在差异。 代码非常精品,注释保姆级,靠谱值得信赖。 ,双层规划;雨流计数法;储能优化配置;充放电曲线;电池健康状态。,基于雨流计数法的双层协同储能优化配置研究