HGE 系列教材(8) --- hgeResourceManager helper class(本文未完成)

简介: hgeResourceManager 是一个资源管理类 1. 构造函数 hgeResourceManager(     const char* scriptname = 0 ); scriptname 表示资源脚本文件名(Resource script filename),如果此参数为 0,表示不使用 Resource script file 现在来介绍一下资源脚本: 资源脚

hgeResourceManager 是一个资源管理类

1. 构造函数

hgeResourceManager(

    const char* scriptname = 0

);

scriptname 表示资源脚本文件名(Resource script filename),如果此参数为 0,表示不使用 Resource script file

现在来介绍一下资源脚本:

资源脚本是一个文本文件,用于定义资源。资源文件由多个(或一个)命令(command)组成,格式如下:

Command ResourceName : BaseResourceName
{
Parameter1=Value1   ; 这里是注释
Parameter2=Value2
...
ParameterN=ValueN
}

我们来看一个例子:

Resource level1
{
filename=levels/level1.dat
resgroup=1
}

这里只有一个命令:Resource,Resource 命令定义了一个原生资源(raw resource)

注意,资源文件是大小写敏感的,资源文件中可以有注释,使用“;”开头。资源文件的参数(parameter)是没有顺序限制的。

同种类型的资源,不可以使用相同的资源名(Resource Name)。在定义资源名或者文件路径时,出现空格或者特殊字符,需要把整个字符串用双引号引起来。

BaseResourceName 是可选的,如果被指定,那么就表示对 BaseResourceName 对应的参数(Parameters)的拷贝,例如:

Sprite wizard
{
texture=characters
rect=0,0,32,32
hotspot=16,16
blendmode=COLORMUL,ALPHABLEND,NOZWRITE
resgroup=1
}

Sprite orc : wizard
{
rect=0,64,32,32   ; 设定新值
color=FF808000   ; 设定新值
}
这里 orc 除了 rect 和 color 两个参数以外,其他参数值都和 wizard 一样。

hgeResourceManager 是可以容错的,如果脚本出现错误,不会导致程序的终止,错误信息将被写入日志文件。

1)Command(命令)

Command 表明了资源的含义,含有以下几种:

Include,Resource,Texture,Sound,Music,Stream,Target,Sprite,Animation,Font,Particle,Distortion,StringTable

<1> Include 命令:Include 命令用于导入其他的资源脚本文件,例如:

Include level2.res   ; level2.res 是一个资源脚本文件

注意,自引用和循环引用是可行的,它们会被检查出来,并报告在日志文件中,例如:

<2> Resource 命令:定义原生资源(raw resource)

参数: filename,resgroup。例如:

Resource level1

{

    filename=levels/level1.dat   ; 可以使用绝对或者相对路径,相对路径是相对于应用程序所在的文件夹或者是相对于资源包的根目录,特别应该注意的是,如果它是一个相对路径,相对的是应用程序或者资源包的根目录而不是脚本文件

    resgroup=1   ; 资源组(resource group)标识符,0 表示没有特定的组

}

<3> Texture 命令:定义一个纹理

参数:filename,mipmap,resgroup。例如:

Texture background
{
filename=images/bg.jpg
resgroup=1
}

由于没有设定 mipmap 参数的值,因此它取默认值。

<4> Sound 命令:定义一个音效

参数:filename,resgroup。例如:

Sound explosion1
{
filename=sounds/expl1.ogg
resgroup=1
}

<5> Music 命令

相关文章
|
3月前
|
Java
【编程基础知识】《Java 基础探秘:return、break、continue、label、switch 与 enum 的深度解析》
本文深入解析了 Java 中的 return、break、continue、label、switch 和 enum 等基础概念,通过代码示例和流程图,帮助读者理解这些控制结构和枚举类型在编程中的应用,提升编程能力。
31 3
|
4月前
|
定位技术 Go 开发工具
dynamic-situational-awareness-qt学习记录
本文是作者yantuguiguziPGJ关于dynamic-situational-awareness-qt学习记录的分享,介绍了在Qt学习过程中发现的qml资源丰富的代码仓库,并提供了资源路径和相关的安装、配置步骤,涉及的内容有数字地球、GIS纹理等,同时提供了相关链接和git命令来克隆代码仓库和ArcGIS Runtime SDK for Qt的安装说明。
|
8月前
|
JSON 安全 数据安全/隐私保护
​iOS Class Guard github用法、工作原理和安装详解及使用经验总结
​iOS Class Guard github用法、工作原理和安装详解及使用经验总结
110 0
|
存储 编译器 C++
C++入门第八篇---STL模板---list的模拟实现
C++入门第八篇---STL模板---list的模拟实现
93 1
《QT从基础到进阶·十二》QPixmap.load加载图片不更新问题
《QT从基础到进阶·十二》QPixmap.load加载图片不更新问题
286 0
|
Kubernetes 容灾 应用服务中间件
【k8s 系列】k8s 学习十一,Label,RC,HPA
上面简单说了一下 pod 的基本知识点,待到后面会使用到 pod 的一些高阶知识点的时候,还可以再细细琢磨底层原理
127 0
|
机器学习/深度学习 算法 图计算
图学习【参考资料2】-知识补充与node2vec代码注解
1. 回顾并总结了图的基本概念。 2. 学习思考算法实现的代码思路--Node2Vec的实现以及RandomWalk的实现。 3. 对源码阅读能力的提升。
|
数据可视化 Python
【pypi开源项目文档】终极秘诀应对rst解析错误:The description failed to render in the default format of reStructuredText
前面雷学委给大家缕一缕了如何开发一个python库并导入运行, 基本完成了一个初步的库,还支持了命令行工具的发布。
482 0
【pypi开源项目文档】终极秘诀应对rst解析错误:The description failed to render in the default format of reStructuredText
【7】JAVA---地址App小软件(AddrBusiness.class)(逻辑层)
【7】JAVA---地址App小软件(AddrBusiness.class)(逻辑层)
453 0
|
存储
【8】JAVA---地址App小软件(AddrDaoFile .class)(数据层)
【8】JAVA---地址App小软件(AddrDaoFile .class)(数据层)
445 0