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

相关文章
|
7天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1172 3
|
6天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
858 12
|
16天前
|
人工智能 运维 安全
|
5天前
|
机器学习/深度学习 物联网
Wan2.2再次开源数字人:Animate-14B!一键实现电影角色替换和动作驱动
今天,通义万相的视频生成模型又又又开源了!Wan2.2系列模型家族新增数字人成员Wan2.2-Animate-14B。
452 10
|
7天前
|
弹性计算 Kubernetes jenkins
如何在 ECS/EKS 集群中有效使用 Jenkins
本文探讨了如何将 Jenkins 与 AWS ECS 和 EKS 集群集成,以构建高效、灵活且具备自动扩缩容能力的 CI/CD 流水线,提升软件交付效率并优化资源成本。
329 0
|
14天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!