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 命令

目录
打赏
0
0
0
0
2
分享
相关文章
|
10月前
|
JAVASE---异常知识补充
Java异常处理涉及关键字try, catch, finally, throw, throws。示例中展示了如何处理`ArithmeticException`。在`Demo01`,尝试除以零并主动抛出异常,通过不同catch块捕获。`Demo02`中,方法`test`可能抛出异常,并通过`throws`声明。`Test`用try-catch处理除零错误,并将异常转换为`RuntimeException`。自定义异常可通过继承`Exception`类实现,流程包括创建异常类、抛出异常对象、捕获处理异常。
40 1
【k8s 系列】k8s 学习十一,Label,RC,HPA
上面简单说了一下 pod 的基本知识点,待到后面会使用到 pod 的一些高阶知识点的时候,还可以再细细琢磨底层原理
137 0
图学习【参考资料2】-知识补充与node2vec代码注解
1. 回顾并总结了图的基本概念。 2. 学习思考算法实现的代码思路--Node2Vec的实现以及RandomWalk的实现。 3. 对源码阅读能力的提升。
【4】JAVA---地址App小软件(UpdatePanel.class)(表现层)
【4】JAVA---地址App小软件(UpdatePanel.class)(表现层)
168 0
【4】JAVA---地址App小软件(UpdatePanel.class)(表现层)
全网首发:MAC对应用签名,运行JAVA时报错“Could not reserve enough space for code cache”的JDK流程
全网首发:MAC对应用签名,运行JAVA时报错“Could not reserve enough space for code cache”的JDK流程
261 0
更新模板接口(alipay.pass.template.update)JAVA版本小样
官方接口文档:https://docs.open.alipay.com/199/105250/  接口描述:对于已经创建的模板,如果需要修改模板内容,可通过该接口修改,适用于修改模板内容。对于已经发布的模板,如果需要修改内容并同步到用户端,则应使用更新卡券接口 调用这个接口前,你肯定是先创建模板了的,  创建模板接口参考该帖:https://openclub.
583 12
艾伟_转载:.NET Discovery 系列之二--string从入门到精通(勘误版下)
本系列文章导航 .NET Discovery 系列之一--string从入门到精通(上) .NET Discovery 系列之二--string从入门到精通(勘误版下) .NET Discovery 系列之三--深入理解.
856 0