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

本文介绍了hgeResourceManager资源管理类的使用方法,包括构造函数及资源脚本的定义方式。资源脚本通过多种命令如Resource、Texture等定义不同类型的资源。

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

基本功能和翎风的一样。 ------------------------------------------------------------------ [2016.09.30] 更新M2功能 ------------------------------------------------------------------ 1.增加脚本命令:InSafeZone //检测人物是否在安全区 ------------------------------------------------------------------ 2.修改程序防止最新僵尸攻击 3.增加脚本命令:SETRANDOMNO //产生一个随机数字 [@main] #IF #ACT SETRANDOMNO //产生一个随机数字 #SAY : //将显示出产生的随机数 [@@CHECKNO] #IF CHECKRANDOMNO //检测输入的验证码是否正确 #ELSEACT MESSAGEBOX 验证码错误! CLOSE BREAK 4.增加脚本命令:ISONMAP MAP //检测当前人是否在MAP地图上 5.增加脚本命令:DELAYCALL 作用:延时执行同一个NPC脚本中指定的标签内容 格式:DELAYCALL S LABEL 其中S是延时秒数(毫秒),Label是执行的脚本标签 示例:DelayCall 3000 @DELAYCALLTEST --- 3秒后自动跳到@DELAYCALLTEST节执行 6.增加脚本命令:KILLBYMON //是否被怪杀 7.增加脚本命令:KILLBYHUM //是否被人杀 地图增加一参数:KILLFUNC(X) //X可以随意数字 说明: 人物在该地图杀人,将触发QFunction-0.txt的[@KillPlay数字]节 人物在该地图杀怪,将触发QFunction-0.txt的[@KillPlayMon数字]节 注:宝宝杀人杀怪有效(秒杀除外) 8. //杀人的怪物名字 9. //杀人的人物名字 #IF KILLBYMON SENDMSG 5 在:%m(%x:%y)把干掉了! #IF KILLBYHUM SENDMSG 5 在:%m(%x:%y)把干掉了! 10.增加人物S变量:(0~99个) 11.解决地图标记 NoHUMNoMon 有人刷怪不能用的问题! 12.增加NPC命令:REPAIRALL //特修身上所有装备 13.增加数据库(修复神水)设置:3 14 //特修身上所有装备 14.增加脚本命令:ISGROUPMASTER //检测是否组长,加入编组后组长会触发QFunction-0.txt 15.增加挂机泡点功能。 ===================================== OFFLINE S EXP S是时间,单位秒 EXP为每S秒得到的经验值 默认必须在安全区域有效 脚本示意: (******************************************************************) (@@offlinemsg) [@main] 一、点击开始脱机泡点后,可输入一段留言信息给你的朋友。\ \ \ \ [@@offlinemsg] #IF CHECKLEVEL > 0 #ACT OFFLINE 5 500 //每5秒增加500经验 --------------------------------------------------------------------------- 16.;检测是否组长 [@MAIN] #IF ISGROUPMASTER #ACT GroupMoveMap 3 330 330 #elsesay 你不是组长. 加入编组后组长会触发QFunction-0.txt [@GroupCreate] #if #say 加入编组 --------------------------------------------------------------------------- 17.增加脱机泡点功能 18.增加地图标记有人刷怪 [0 比奇] NoHUMNoMon ;有人才开始刷怪 19.增加地图标记禁止仍背包物品 [1 沃玛森林] NOTHROWITEM ;禁止仍背包物品 20.增加地图标记死后不爆背包物品 [2 毒蛇山谷] NODR
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值