今日時間:07.6.26
最近一段時間,先放下D3D的學習,實踐2D程式設計。做項目,并且完善自己的2D/3D引擎.
寫該引擎,不是為了做出什麼出色的東西,主要是為了鞏固自己學到的C++知識,實踐C++知識,不然,都忘球了,呵呵。
實踐吧,把自己知道的知識都放進去.某些地方可以用現成的(比如windows相關的方面)把注意力放在 資源管理,C++技術,架構管理方面.
DL game engine reference document 大綱: GUI CORE MATH COMMON DEBUG Dlapplication 基類設計原則: 1:支援 顯處改動标題 2:支援 初始化應用程式 前後的服務操作。(virtual) 3:支援 wndProc消息處理 的前後服務操作,(即自定義消息)(virtual) 4::遊戲主循環 (virtual) A:支援 主要遊戲循環裡的前後服務操作 (virtual) B:在這裡處理windows消息循環. 5:為了盡可能的簡化程式的代碼,增加可讀性,遊戲的執行流程盡可能的隐藏.對外僅暴露很簡陋的接口即可. Eg:if(game.init()) Game.run(); Return; 6:關于時間幀處理. 借處DLTimer去實作時間幀.定義最高幀頻為100F/s. 最低的話就看不同的電腦組態而言了, 當沒有到時間祯時。Sleep(); DLApplication 基類設計思想進化論: 1:但凡任何一個架構,架構的開發者都會提供簡單代碼使用示例,win32不例外,DX也不例外. 2:DLApplication 就是把win32的框加 封裝進DLApplication類裡面. 關于DLInput Init();完成裝置初始化.失敗傳回 false; UpdateData();完成資料更新.并把滑鼠及鍵盤的狀态的改變,作為事件發出去. GetCursorPos()查詢接口,傳回滑鼠位置 GetKeyState()查詢鍵盤某一按鍵狀态.按下傳回true. 關于DLGraphic. Init(); DrawText(pos,RGb,”..”,…) Render(handleTexture,dstRect,srcRect,) 關于TextureMgr 本系統支援對圖檔的引用計數,對于同一個名字的圖檔.在記憶體中隻保留一份拷貝!!! 同時警告:不系統中所有的圖檔不能重名,不然會導緻,後加載的同名圖檔不可能被加載 Void SetLoadPicPath(char*); Handle LoadTextfromFile(“filename”)// 相對路徑.注意,相對于本身内部儲存的一個相對路徑.,注意, Handle QueueTexture(“filename”)查詢一個 RemoveText(handle); RemoveText(filename)// 不推薦!!! 關于Texture CreatePicFormFile(); 儲存了filename 儲存了filenDate 關于EventMgr PostEvent()// 往事件管理器中加入一個事件. Begin(); Next(); End();// 指向一個不存在的事件. 關于Event // 僅支援滑鼠 posX,poxY. Type MouseMove,LbuttonDown,up, RightButtonDown,up