2010年4月29日 星期四

DxLib with Layer Manage

最近在寫一些Game底層的東西,主要是要把DxLib的東西封裝起來能夠支援圖層。
DxLib沒有圖層的概念,先畫的東西會被後畫的東西覆蓋。所以就必須要把畫的東西的順序(圖層)先記起來,等到畫圖的時候再依照順序畫出才行。
也因為這樣子,像DrawGraph、DrawLine這些東西都要封裝成物件來記錄。甚至一些會影響到畫圖結果的function像是SetTransColor、SetDrawBlendMode這些function也要封裝起來,才能有正確的作用。

我想只能先包知道的部份,剩下的部份就看有用到再包進來就好。

另外Singleton很多人都說不好,但是我覺得還不錯用阿XD...
Orge3D也用不少Singleton,我想應該不至於差到哪去吧。
就像很多人反對用goto,但是其實goto用在對的地方並不會影響架構,反而會讓程式乾淨得多。

1 則留言:

Another 提到...

#include "DxLib.h"
int main(){
int first, last;
SetGraphMode(640, 480, 32, 60);
ChangeWindowMode(1);
DxLib_Init();
first=MakeGraph(640,480,1);
last=MakeScreen(640,480,0);
SetDrawScreen(first);
ClearDrawScreen();
DrawBox(100,100,200,200,0xFF0000,1);
SetDrawScreen(last);
ClearDrawScreen();
DrawBox(0,0,640,480,0x00FF00,1);
SetDrawScreen(DX_SCREEN_BACK);
DrawGraph(0,0,last,1);
DrawGraph(0,0,first,1);
ScreenFlip();
WaitKey();
DxLib_End();
return 0;
}