HGE 係列教材(8) --- hgeResourceManager helper class(本文未完成)
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 命令
最後更新:2017-04-02 06:51:29