成千上萬的野兔
這篇教程示範hge渲染多種混合模式。
建立精靈
我們跳過所有的技術細節直接來到動作。首先建立並初始化一對精靈,用於
"game objects"
和背景。注意背景精靈是如何從小的
64x64
圖塊建立並在底部上色。
htexture tex, bgtex;
hgesprite *spr, *bgspr;
tex=hge->texture_load("zazaka.png");
spr=new hgesprite(tex,0,0,64,64);
spr->sethotspot(32,32);
bgtex=hge->texture_load("bg2.png");
bgspr=new hgesprite(bgtex,0,0,800,600);
bgspr->setblendmode(blend_coloradd | blend_alphablend);
bgspr->setcolor(0xff000000,0);
bgspr->setcolor(0xff000000,1);
bgspr->setcolor(0xff000040,2);
bgspr->setcolor(0xff000040,3);
初始化遊戲物件陣列
現在我們建立陣列,儲存
"game objects"
的屬性並用任意值填充。
#define max_objects 2000
struct sprobject
;
sprobject* pobjects;
int nobjects;
pobjects=new sprobject[max_objects];
nobjects=1000;
for(i=0; i
改變混合模式
setblend函式使用乙個0到
4的int變數來調整遊戲物件陣列的混合模式。
void setblend(int blend)
;
static dword sprcolors[5][5]=
,
,
,
,
};
if(blend>4) blend=0;
nblend=blend;
spr->setblendmode(sprblend[blend]);
for(int i=0;i
}
更新螢幕
在
framefunc中我們遍歷遊戲物件陣列並計算它們的新位置。
for(i=0; i
pobjects[i].y+=pobjects[i].dy*dt;
if(pobjects[i].y>screen_height || pobjects[i].y<0)
pobjects[i].scale+=pobjects[i].dscale*dt;
if(pobjects[i].scale>2 || pobjects[i].scale<0.5)
pobjects[i].rot+=pobjects[i].drot*dt;
}渲染螢幕 在
renderfunc中我們遍歷遊戲物件陣列並渲染它們。
hge->gfx_beginscene();
bgspr->render(0,0);
for(i=0; i
->gfx_endscene(); hge使用up
和down
鍵調整精靈的數量,空格鍵改變混合模式,esc退出。
HGE教程翻譯(3)
這次我們會學習使用 hge的一些幫助類。首先,包含所有需要的標頭檔案並宣告 hge全域性指標,大多數幫助類都需要它。include include include include hge hge 0 現在宣告 hge物件。hgesprite spr hgesprite spt hgefont fnt...
HGE教程翻譯(4)
渲染紋理 首先我們宣告渲染物件的控制代碼和配合使用的精靈。hgesprite tar htarget target gfxrestorefunc 函式。bool gfxrestorefunc 在renderfunc中我們首先渲染所有的素材到紋理,在 gfx beginscene 中詳細指定渲染物件。...
HGE教程翻譯(5)
使用曲面變換 在這個教程中我們學習如何使用曲面變形,一種可以建立水面 透鏡 紙張甚至實時的變化。我們使用靜態的紋理,但你可以渲染你的整個遊戲場景到乙個紋理,通過扭曲網格來達到一些很酷的實時特效。首先包含標頭檔案和變數的宣告。include include include hge hge 0 htex...