記錄windows遊戲程式設計 1

2021-10-05 23:12:41 字數 3931 閱讀 6711

//程式名稱:gamecore

//2023年5月10日

//用**勾勒遊戲開發所需要的程式框架

#include

//巨集#include

#define window_height 600

#define window_width 800

#define window_title l"[致我們永不熄滅的遊戲開發夢想]程式核心框架"

//全域性變數

hdc g_hdc =

null

;//全域性裝置環境控制代碼

hpen g_hpen[7]

=;//定義畫筆控制代碼陣列

hbrush g_hbrush[7]

=;//定義畫刷控制代碼陣列

int g_ipenstyle[7]

=;//定義畫筆樣式陣列並初始化,實線,虛線,點,線點,線點點,空白,封閉形狀內線

int g_ibrushstyle[6]

=;//定義畫刷樣式陣列並初始化,垂直陰影,水平陰影,水平垂直交叉線陰影,45°交叉線陰影,45°向下對角線陰影,45°向上對角線陰影

//宣告

lresult callback wndproc

(hwnd hwnd, uint message, wparam wparam, lparam lparam)

;bool game_init

(hwnd hwnd)

;void game_paint

(hwnd hwnd)

;bool game_cleanup

(hwnd hwnd)

;int winapi winmain

(hinstance hinstance, hinstance hprevinstance, lpstr lpcmdline,

int nshowcmd)

//winmain應用程式入口函式

;//用windclas***定義了乙個視窗類

wndclass.cbsize =

sizeof

(wndclas***)

;//設定結構體的位元組數

wndclass.style = cs_hredraw | cs_vredraw;

//設定視窗的樣式

wndclass.lpfnwndproc = wndproc;

//設定指向視窗過程函式的指標

wndclass.cbcl***tra =0;

//視窗類的附加記憶體,取0就可以了

wndclass.cbwndextra =0;

//視窗的附加記憶體,依然取0就行了

wndclass.hinstance = hinstance;

wndclass.hicon =

(hicon)

::loadimage

(null

, l"icon.ico"

, image_icon,0,

0,lr_defaultsize | lr_loadfromfile)

;//本地載入自定義ico圖示

wndclass.hcursor =

loadcursor

(null

, idc_arrow)

;//指定視窗類的游標控制代碼

wndclass.hbrbackground =

(hbrush)

getstockobject

(gray_brush)

;//為hbrbackground成員指定乙個灰色畫刷控制代碼

wndclass.lpszmenuname =

null

;//用乙個一空終止的字串,指定選單資源的名字

wndclass.lpszclassname = l"forthedreamofgamedevelop"

;//用乙個一空終止的字串,指定視窗類的名字

//視窗建立第二步:註冊視窗類if(

!registerclas***

(&wndclass)

)return-1

;//建立了視窗必須要註冊,視窗類才可以用。

//視窗建立第三步:正式建立視窗

hwnd hwnd =

createwindow

(l"forthedreamofgamedevelop"

, window_title,

null

,null

, hinstance,

null);

//視窗建立第四步:視窗的移動、顯示與更新

movewindow

(hwnd,

250,

80, window_width, window_height,

true);

showwindow

(hwnd, nshowcmd)

;updatewindow

(hwnd)

;//遊戲資源初始化,若初始化失敗,彈出有乙個訊息框,並返回falseif(

!game_init (hwnd)

)//訊息迴圈過程

msg msg =

;while

(msg.message != wm_quit)

//如果訊息不是wm_quit訊息佇列,就繼續迴圈。

}//視窗類登出

unregisterclass

(l"forthedreamofgamedevelop"

, wndclass.hinstance)

;return0;

}//視窗過程函式wndproc

lresult callback wndproc

(hwnd hwnd, uint message, wparam wparam, lparam lparam)

//視窗過程函式

break

;case wm_destroy:

//視窗銷毀資訊

//direct3d_cleanup(); //清理com介面物件

game_cleanup

(hwnd)

;//呼叫自定義的資源清理函式game_cleanup()進行退出前的資源清理

postquitmessage(0

);//向系統表明有個執行緒有終止請求,wm_destroy

break

;default

:return

defwindowproc

(hwnd, message, wparam, lparam)

;//呼叫預設的視窗過程函式提供預設處理

break;}

return0;

}//game_init()函式

bool game_init

(hwnd hwnd)

game_paint

(hwnd)

;releasedc

(hwnd, g_hdc)

;return true;

}//game_paint()函式

void game_paint

(hwnd hwnd)

//注意上面畫完之後由420,下面畫矩形的時候還有用

//定義兩個x座標值

int x1 =

120;

int x2 =

190;

//用7種不同的畫刷填充矩形

for(

int i =

0; i <=

6; i++)}

//game_cleanup()函式

bool game_cleanup

(hwnd hwnd)

return true;

}

執行結果如下:

花了不少時間整理,來自於《逐夢旅程 windows遊戲程式設計之從零開始》,希望自己可以把這本書學完,加油!

windows核心程式設計 記錄 1

物件,windows分為使用者物件和核心物件.說的最多的就是核心物件.核心物件有很多,程序,檔案,管道,and so on.需要記錄的只有乙個東西 closehandle 程序,有程序的核心物件,程序的核心物件比此程序的存在週期要常.程序結束的時候它所對應的核心物件並不會立刻結束,而是檢查它的計數器...

windows遊戲程式設計滑鼠

常用滑鼠訊息 wm mousemove 滑鼠移動位置 wm lbuttondown 滑鼠左鍵按下 wm lbuttonup 滑鼠左鍵彈起 wm lbuttondblclk 滑鼠左鍵雙擊 wm rbuttondown 滑鼠右鍵按下 wm rbuttonup 滑鼠右鍵彈起 wm rbuttondblcl...

windows程式設計 筆記1

windows.h 中包含了 許多其他的標頭檔案 主要是 winuser.h使用者介面 winbase.h kernel函式 windef.h 一些型別的define winnt.h 支援 unicode形態定義 wingdi.h 包含圖形介面函式 應用程式的入口函式 int winapi winm...