HGE 的Resource Manager

本文介绍了HGE游戏引擎中的资源管理器类hgeResourceManager的使用方法,包括如何通过资源脚本文件定义纹理、精灵等资源,以及如何在程序中加载和使用这些资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下资料翻译自:http://gpwiki.org/index.php/HGE:Tutorials:Resource_Manager

 

Resource Manager

The resource manager is a way of defining textures, sprites, sounds, and other items that your application makes use of. hgeresourceManager is an HGE helper class that automates creation of complex resource objects and their management in memory.

    资源管理器是一种定义纹理,精灵,声音,以及其他被你的应用程序使用的资源的方法。

hgeResourceManager是HGE的扩展类,它使得创建各种复杂的资源以及管理各种资源自动化。

 Resource Script files (资源脚本文件)

Resource script files are used with hgeResourceManager helper class to define complex resources. They are just plain text files containing resource definitions. A resource script file consists of commands separated by whitespace characters ('/t', '/n', '/r' or ' '). If a semicolon (';') is encountered, the rest of the line is treated as a comment and is not parsed. All the commands and names are case sensitive.

    资源脚本文件和hgeResourceManager扩展类一起使用来定义复杂的资源。资源脚本文件是包含了资源定义的纯文本文件。一个资源脚本文件由被空格字符('/t', '/n', '/r' ' ' )分开的命令组成。而分号(“;”)被用做注释,它后面的一行字符都将被认为是注释,而不被引擎解释。所有的命令以及名字都是大小写敏感的。

    The command formate is:

    命令格式为:

 ResourceType ResourceName [ : BaseResourceName ]
    
{
    
 Parameter1=Value1
    
 Parameter2=Value2
    
 ...
    
 ParameterN=ValueN
    
}
    

Example: specifying a texture

一个指定了纹理的例子:
    
Texture myTexture
    
{
    
 file=picture1.png
    
}
    

For now, just create a blank text file named resource.res and place it in the same directory as the main.cpp file. Using the Resource Manager

     现在创建一个名为resource.res的空白文件,然后写入以上内容,并把这个文件放到与main.cpp相同目录下。使用资源管理器:
   
        To use the resource manager, include the hgeresource.h file and declare myRes, which will be used when we need to access our resources
   

    要使用资源管理器,需要包含 hgeresource.h 文件,并定义myRes对象:

    #include    <hgeresource.h>

    hgeResourceManager *myRes;

    Inside WinMain(), but before the hge->System_Start() call, we initialize myRes with the name of the resource file we will be using.

    WinMain()函数里,在 hge->System_Start()前我们用刚才写的那个资源脚本文件初始化 myRes 对象。

     myRes = new hgeResourceManager("resource.res");
    
     
    
     程序退出时删除myRes对象即可。
   

我的总结:

    例如要使用纹理,你可以这样定义:

Texture back

{

       filename=back.jpg

}

 

把这个定义放到一个res文件里,例如:resource.res。然后在程序里可以这样使用这个纹理:

HTEXTURE    backTx;

hgeResourceManager *resMgr = new hgeResourceManager( "resource.res" );

backTx = resMgr->GetTexture( back );

同理,要使用精灵,就可以这样做:

res文件了里

Texture sheet

{

 filename=sheet.png

}

Sprite playerSprite

{

 texture=sheet

 rect=0, 0, 64, 64

}

因为sprite    需要为其指定纹理,所以其参数texture=sheet,sheet是res文件中之前定义的纹理。

然后在程序里:

hgeSprite *sprite ;

hgeResourceManager *resMgr = new hgeResourceManager( “resource.res”);

sprite = resMgr->GetSprite( “playerSprite” );

然后就可以完全地使用sprite了。

 
基本功能和翎风的一样。 ------------------------------------------------------------------ [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、付费专栏及课程。

余额充值