HGE遊戲引擎之實戰篇,漸變的遊戲開場

2022-09-02 06:33:06 字數 2858 閱讀 8321

#include #include 

"menuitem.h"//

#include

#include #include

//定義全域性變數

long

int zhen = 0;//

定義當前關卡

int scence = 0;//

hge控制代碼

hge * hge =null;

//背景**,

heffect bg_music;

htexture bg_texture;

hgesprite *bg_pic;

hgequad background;

//遊戲時間

float

time;

//hgebackground test;

hgegui *gui;

hgefont *fnt;

hgesprite *spr;

//邏輯框架迴圈

bool

framefunc()

}return

false;}

//圖元渲染迴圈

bool

renderfunc()

//主程式入口

int winapi winmain(hinstance, hinstance, lpstr, int

) hge->effect_playex(bg_music,100,0,1.0f,true

);

//background的載入與初始化

background.tex = hge->texture_load("

bg_pic.png");

if (!background.tex)

background.blend=blend_alphaadd | blend_colormul |blend_nozwrite ;

for(int i=0;i<4;i++)

background.v[

0].x=0; background.v[0].y=0

; background.v[

1].x=800; background.v[1].y=0

; background.v[

2].x=800; background.v[2].y=600

; background.v[

3].x=0; background.v[3].y=600

; background.v[

0].tx=0.0/800.0

; background.v[

0].ty=0.0/800.0

;

background.v[

1].tx=800.0/800.0

; background.v[

1].ty=0.0/800.0

; background.v[

2].tx=800.0/800.0

; background.v[

2].ty=600.0/800.0

; background.v[

3].tx=0.0/800.0

; background.v[

3].ty=600.0/800.0

;

//程式開始

hge->system_start();

//釋放資源

hge->effect_free(bg_music);

//hge->effect_free(bg_texture);

hge->texture_free(background.tex);

}//關閉程式資源

hge->system_shutdown();

hge->release();

return0;

}

hge實戰**

我們先看下前面的全域性變數分別定義了背景**bg_music和背景background

background.tex = hge->texture_load("

bg_pic.png

");

載入背景,然後設定渲染模式,並設定好z-order,下面是重要的部分了

background.v[i].col=argb(0,255,255,255);
通過argb()函式返回乙個關於顏色的十六進製制,該函式模型如下int argb(int alpha,int r,int g,int b);我們這裡將透明度先設定為0;

然後接下來每一幀都會呼叫的兩個函式:framefunc()和renderfunc(),前者是每幀的邏輯設定,後者是每幀的渲染設定;

bool

framefunc()

}return

false

;}

這裡函式總是返回 false,若是返回true的話就會跳出hge->system_start();開始執行後面的資源銷毀和程式退出**.我們可以在這裡進行邏輯判斷,在某個時候更改背景等,更換場景,若是載入不成功就return true.

這裡我們看到,先是判斷背景透明度是否是255而且從呼叫系統初始化到現在的時間取餘(這樣是為了控制逐漸的出場效果速度),假如不是就將背景的四個頂點的顏色中的透明度++,這樣每幀都會+1那隨著幀的增加,逐漸將整個顯現出來.

bool

renderfunc()

每幀的渲染函式,開始渲染,清空快取,渲染背景,退出渲染,返回false(這裡跟上面的framefunc()一樣);

接下來就要開始學習gui選單的部分!

spring aop 實戰篇 一

需求 通過spring aop 提供的面向切面程式設計的思想,利用自定義註解的方式,實現對介面的功能的增強 一 自定義乙個註解類 target 指明了修飾的這個註解的使用範圍,即被描述的註解可以用在 documented retention retentionpolicy.runtime targe...

(二)zookeeper實戰篇

a.安裝jdk b.安裝zookeeper 通過filezilla將zookeeper傳到linux下的 opt software下並chaos u x zookeeper 3.4.10.tar.gz 然後解壓到 opt module 下 c.修改配置 將 opt module zookeeper ...

效能測試 實戰篇

bug的表現 拆分物件 然後從功能實現上來看,怎麼實現這個完整功能的。通常這些業務功能操作都對應著乙個或多個請求 可能能是不同型別的請求,比如 http,mysql 等 我們要做的是找出這些操作對應的請求,請求之間的順序是怎麼樣的。指標分析 常用分析思路 2 8 法則 正態分佈 按比例倍增 響應時間...