// winmain
//int winapi winmain(hinstance hinstance,
hinstance previnstance,
pstr cmdline,
int showcmd)
if(!setup())
d3d::entermsgloop( display );
cleanup();
device->release();
return 0;
}通過上面winmain函式執行過程我們知道遊戲的大概框架:
1.winmain做為程式的入口。
2.在if的判斷引數中執行了d3d::initd3d,d3d::initd3d功能為初始化住顯示視窗和driect3d。
3.第二個if的判斷引數中執行了setup();setup主要完成程式的初始話(遊戲中則為遊戲的初始化工作,例如建立遊戲物件等)
4.通過display作為引數呼叫了d3d::entermsgloop( display );display功能為完整螢幕的填充和後背表面互動,d3d::entermsgloop實現了訊息迴圈,在這裡通過:
::peekmessage獲取訊息
::translatemessage翻譯為具體訊息
::dispatchmessage將訊息投遞給作業系統
作業系統再呼叫視窗過程函式(**函式)d3d::wndproc處理訊息。 (這裡d3d::wndproc**定義有程式設計師編寫,在這裡實現遊戲的控制機制)
5.執行cleanup();清除應用程式。
6.執行device->release();釋放idriect3ddevice9物件。
3d遊戲框架(第乙個3d遊戲例項)中
在d3d initd3d中我們談到它完成了主顯示視窗的建立,下面我們了解下視窗是如何被建立的。視窗建立的步驟如下 1.設計乙個視窗類。2.註冊視窗。3.建立視窗。4.顯示及更新視窗。在d3d initd3d 的 中 wndclass wc wc.style cs hredraw cs vredraw...
3D遊戲之神 John Carmack
談到遊戲,從引爆電腦遊戲核彈的 doom 毀滅戰士 到讓無數玩家沉溺在死亡競賽中進行光榮與夢想戰鬥的 qyake 雷神之鎚 再到如今萬人聯機激情對抗的 半條命 和 反恐精英 都有著強大的遊戲引擎在背後支撐著這些偉大的遊戲,而這些引擎的背後,都鐫刻著同乙個人的名字 john carmack。如今,ca...
3D手機遊戲引擎
一,寒霜2引擎 frostbite 2 engine 但手機上貌似不支援 二,虛幻3引擎 unreal engine 3 沒用過 三,unity 引擎 本人使用過 以上3d引擎我推測應該都是基於 opengl es2.0圖形庫支援嵌入式裝置。2d手機遊戲引擎 一,cocos2d x cocos2d ...