《Windows遊戲程式設計大師技巧》一 學海無涯

2021-08-26 19:37:15 字數 2119 閱讀 5273

偶然發現了本很棒的遊戲程式設計入門書 - 《windows遊戲程式設計大師技巧》。說是大師技巧,其實還是很深入淺出的。

它涵蓋了windows圖形程式設計的方方面面,從win32的helloworld程式,到gdi簡介,再到directx的api。很適合我

這種windows程式設計的菜鳥,所以很喜歡這本書的內容。

覺得這本書好的另乙個原因是:雖然內容豐富,但沒有涉及windows程式設計比較繁瑣的地方,基本就是win32加directx。

這對於不想深入學習com、mfc等等windows平台上眾多繁雜的技術的人來說很適合。尤其是剛學完c語言,需要一些

練手的小專案。windows下的c程式設計與linux下相比,比較有趣,圖形化看起來也比較有成就感。

歷史一瞥

早期的pc機落後於家用遊戲機,最強大的遊戲機統治了遊戲市場。

doom的出現和成功證明了一點:只要足夠聰明,人們可以使pc機做任何事。

在doom熱的衝擊下,微軟開始重新評價自己在遊戲程式設計上的地位,它意識到娛樂產業的巨大。

事實上,它不過是一堆用於畫位圖的圖形呼叫而已。

直到directx 5.0發布,人們才從dos上轉到windows上進行開發。

設計遊戲

3d數學很難,但策劃和設計乙個有趣的遊戲可謂同樣困難、重要。

想出乙個遊戲點子並不特別難,關鍵是細節、最終實現和視覺效果。

遊戲的構成

編寫ms word程式雖然難,但是編寫unreal遊戲則要比編寫我所知道的其他任何程式都要難。

大多數情況下,遊戲迴圈是乙個含有大量狀態的有限狀態自動機

常規遊戲程式設計指導規範

特別是與遊戲內迴圈有關的**大都需要手工編寫。除此之外,還應留意下列技巧。

技巧1 全域性變數代替引數傳遞

void plot(int x, int y, int color)

由於引數要被壓棧、出棧,執行這個函式體的時間小於呼叫函式的時間。所以可以設立一些全域性變數,

在呼叫前賦值以傳遞引數。

int gx, gy, gz, gcolor; // define some globals void plot_g(void)

技巧2 內聯函式

使用內聯函式inline指示編譯器用函式體**去替換函式呼叫。這樣做會使編譯後的程式變大,

但卻有效地提高了執行速度。

inline void plot_i(int x, int y, int color)

技巧3 盡量用32位變數

奔騰處理器是全32位架構的,較小的變數會降低定址速度。

struct cpoint

這個結構沒有注意位元組對齊,一共5位元組。

struct cpoint

一共12位元組。浪費了許多記憶體,但換來了速度的提公升。

技巧4 使用二進位制移位運算

int y_pos = 10; // multiply y_pos by 64 y_pos = (y_pos << 6); // 2^6 = 64 // divide y_pos by 8 y_pos = (y_pos >> 3);

技巧5 設計演算法

設計高效率的演算法,沒有任何一種組合語言能使複雜度為o(n²)的演算法執行的更快。

開發環境配置

1.安裝directx執行時。

2. 安裝directx sdk包。

3. 新建win32工程,將sdk目錄下的lib資料夾中的庫函式和include資料夾中的標頭檔案匯入到工程中。

4. 開始開發!具體編譯鏈結過程如下圖所示。

《Windows遊戲程式設計大師技巧》一 學海無涯

偶然發現了本很棒的遊戲程式設計入門書 windows遊戲程式設計大師技巧 說是大師技巧,其實還是很深入淺出的。它涵蓋了windows圖形程式設計的方方面面,從win32的helloworld程式,到gdi簡介,再到directx的api。很適合我 這種windows程式設計的菜鳥,所以很喜歡這本書的...

Windows遊戲程式設計大師技巧筆記(一些基礎)

c 的乙個好處就是幾乎完全不用與二進位制有關的東西和記憶體打交道,一切都是物件,一切都是十進位制。突然轉到c 有點無所適從。現在記錄一下半個月集中學習c 和directx的一些經驗。1 或運算 or 符號 與運算 and 符號 在window7系統自帶計算器的程式設計師模式下可以找到這兩個運算子。w...

3D遊戲程式設計大師技巧 環境搭建

剛開微博,想借助這個平台與大家交流,寫下自己的學習記錄,希望得到大家的批評指正。好了,進入主題。這段時間對遊戲程式設計很感興趣,於是在的推薦下開始學習 3d遊戲程式設計大師技巧 這本書。今天來說一下環境搭建。由於這本書還是有點年代的,而且它的 是基於作者的前一本書 windows遊戲程式設計大師技巧...