開始做遊戲系列——擁有你自己的遊戲(轉)
開始做遊戲系列——擁有你自己的遊戲(轉)[@more@] 上次我們討論了遊戲領域裡面的幾種職業,以後我會說明他們是如何一起工作完成一個遊戲的。今天呢,就要 實現大家的夢想,擁有一個自己的遊戲;甭管自己多菜,先做出來個遊戲先;不過還是要對一些常見的遊戲有 所瞭解: RPG: Role Play Game 角色扮演類遊戲 天之痕 FPS: First Person Shoot 第一人稱射擊遊戲 Counterstrike Puzzle Games 棋牌類遊戲 五子棋 Sports Game 體育運動類 極品飛車、Fifa Action Game 動作類 格鬥 還有很多,例如冒險類、休閒類、網遊類;分類標準不同,不能一一說明,只是想對遊戲一無所知的人臨時充 充電。選擇一個儘量簡單的遊戲,我的建議是越簡單越好,RPG遊戲不要去想,我們現在做個自己的第一個遊戲 只是想對遊戲有所瞭解,不是拿去賣;也不要高深的人工智慧(這樣的話,當然也要把棋牌類遊戲排除),先把 時間花費在程式結構上面去,演算法當然重要,不是我們現在所要考慮的;而我常常很多人建議新手去編五子棋 ,我想這絕對是個誤導。 那你可能在想,我們現在能做什麼呢?既然你想跟著我來做遊戲,那麼我想一些知識你是需要掌握的,關於c++ 、VC和Direct X的知識: 1、能夠區分MFC 和win32 app,能建立工程、能在工程中新增檔案、能設定標頭檔案和庫檔案的路徑、能向工程中 新增庫,基本的除錯程式的能力; 2、有類、物件、介面、指標的概念 3、有獨立下載Direct X SDK(3.0--9.0)和CDX 庫(我這裡有cdx 3.1)的能力;cdx開發庫是開放原始碼的,所以以後如果有興趣,可以研究一下他們是怎麼封裝的; cdx可以在找到 4、會安裝並在VC++ 6.0中設定Direct X SDK(3.0--9.0)和CDX庫. 不過要提醒一下,安裝direct sdk前,先要把VC++ 6.0關掉。Direct SDK會詢問你是不是要關聯到VC++ 6.0,選擇是,就不需要手動新增;你會發現 工具-->選擇-->目錄中 路徑裡面,Direct X SDK的標頭檔案和庫檔案已經被新增進去了; 安裝CDX的時候就沒有這麼智慧,你需要自己手動新增,不會的話,回覆我的時候說一聲; 好了,假設你一切搞定; 現在開啟cdx安裝目錄下的"gameslasterBlaster.dsp",將會開啟工程,這就是我向大家推薦的第一個遊戲;確切點說,是我們要修改這個遊戲,不過前提是,我們要能夠編譯執行透過,而且能夠了解這個遊戲的來龍去脈。對了,cdx預設安裝在 c:cdx資料夾 邁出第一步通常是很難的,不過邁出第一步後就很輕鬆了;你可能會發現你還是不能執行,常見的錯誤是找不到"cdxd.lib",沒關係,我們只要稍微修改就可以了,在 工程-->設定-->Link中 模組庫裡,看有沒有cdxd.lib?如果有的話(呵呵,當然是有的),改成cdx.lib 這樣就萬事大吉了,再編譯執行,應該沒錯了把?還有??!!那提出來,看我能不能幫你解決;遇到困難不要急,到ogdev論壇裡來問一下,基本上你遇到的問題我也會遇到過,我會給你建議;我每天都來上網,你的問題會很快解決,這個不要擔心。 那麼我們現在就要看程式碼了: 遊戲結構程式碼: ///////////////////////////////////////////////////////////////////////////////////////////// // GAME.CPP 遊戲的框架,不同的是UpdateGame()實現不同 ///////////////////////////////////////////////////////////////////////////////////////////// void FiniApp() { //程式碼略 //遊戲結束的清理工作 } ///////////////////////////////////////////////////////////////////////////////////////////// // WinProc 視窗訊息處理函式,一般不處理遊戲的事件 ///////////////////////////////////////////////////////////////////////////////////////////// long PASCAL WinProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch(message) //訊息處理函式做了很少的工作,主要工作是在沒訊息的 //時候的空閒處理函式里做的 { case WM_ACTIVATEAPP: bActive = wParam; break; case WM_KEYDOWN: switch(wParam) { //ESC鍵使遊戲結束 case VK_ESCAPE: PostMessage(hWnd, WM_CLOSE, 0, 0); break; } break; case WM_DESTROY: FiniApp(); PostQuitMessage(0); break; } return DefWindowProc(hWnd, message, wParam, lParam); } ///////////////////////////////////////////////////////////////////////////////////////////// // InitApp 產生視窗,初始化遊戲 ///////////////////////////////////////////////////////////////////////////////////////////// BOOL InitApp(HINSTANCE hInst, int nCmdShow) { //註冊視窗類,建立視窗,視窗控制程式碼hWnd if(!hWnd) return FALSE; ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); InitGame(); Input.Create(hInst, hWnd); return TRUE; } ///////////////////////////////////////////////////////////////////////////////////////////// // WinMain 程式的入口位置 ///////////////////////////////////////////////////////////////////////////////////////////// int PASCAL WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nCmdShow) { MSG msg; //這裡呼叫初始化視窗和遊戲 if(!InitApp(hInst, nCmdShow)) return FALSE; while(1) { if(PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE)) { if(!GetMessage(&msg, NULL, 0, 0 )) return msg.wParam; TranslateMessage(&msg); DispatchMessage(&msg); } else if(bActive) //bActive標誌遊戲是否在執行 { UpdateGame(); //這個函式起了很大的作用,更新輸入和遊戲 } else WaitMessage(); } } 上面也是基本的win32 application的基礎知識
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-951449/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 5分鐘擁有自己的坦克大戰遊戲遊戲
- 坐擁180萬粉絲UP主轉行做遊戲?遊戲
- 《月圓之夜》製作人:小學時做自己的遊戲,如今在遊戲裡做一點自己遊戲
- 從零開始做一個SLG遊戲(七):遊戲系統以及配置表遊戲
- 當騰訊開始推出自己的女性戀愛遊戲遊戲
- 遊戲開發者都擅長“打自己的遊戲”嗎?遊戲開發
- Unity遊戲示例來了,用Unity開源遊戲資源做遊戲,遊戲開發不再難!Unity遊戲開發
- 你的遊戲為什麼做不出遊戲
- 我看位元組跳動做遊戲,有戲!遊戲
- 你有多愛遊戲,遊戲就有多愛你,聊聊遊戲中的情感寄託和情感表達遊戲
- 萬萬沒想到,騰訊視訊也開始做遊戲了遊戲
- Eternity:做遊戲應該先讓自己喜歡遊戲
- 按下「START」,開始雲遊戲遊戲
- UGC遊戲浪潮(三)做一個UGC遊戲與在UGC做一個遊戲GC遊戲
- 用Python做遊戲有多簡單?Python遊戲
- 遊戲開發者自己評選出的最佳遊戲,和TGA差了多少?遊戲開發
- 微信互動小遊戲:有創意的抽獎小遊戲怎麼做?遊戲
- 6年12款遊戲,胖布丁創始人:只想做自己的遊戲,留下一部分給自己遊戲
- 遊戲引擎Cocos接入HMS Core,華為推送服務擁抱遊戲開發者!遊戲引擎遊戲開發
- 2023年遊戲人最大的體驗:“做遊戲好難”遊戲
- 遊戲的戰略(五):為什麼做遊戲難【完】遊戲
- 熱愛遊戲的你是否真的瞭解遊戲?遊戲
- 做自己喜歡的遊戲,是一件很幸福的事遊戲
- 從零開始做一個SLG遊戲(一):六邊形網格遊戲
- 從零開始做一個SLG遊戲(八):配置表載入元件遊戲元件
- 騰訊投資入股摘星網路,後者擁有《雞你太美》等遊戲遊戲
- 衝破生存迷霧!我們用自己做的遊戲引擎做了一款創業題材遊戲遊戲引擎創業
- 重回遊戲圈7年,她率性而活:負債累累,但還在堅持做自己想做的遊戲遊戲
- 你平時有玩遊戲嗎?都玩什麼遊戲呢?玩得如何?遊戲
- “反遊戲“的遊戲——放置遊戲研究遊戲
- 你看,遊戲宣發不搞製作,開始研究兵法了遊戲
- win10執行lol開始遊戲結束遊戲黑屏怎麼辦Win10遊戲
- 從零開始實現放置遊戲(一)遊戲
- 年度獨立遊戲擁有這樣的玩家數,算成功嗎?遊戲
- threejs可以做遊戲嗎JS遊戲
- 在巴基斯坦做遊戲遊戲
- Facebook 小遊戲上傳的遊戲包有大小限制遊戲
- 在遊戲裡做遊戲?從《坦克大戰》到DOTA遊戲
- 用 Java 做個“你畫手機猜”的小遊戲Java遊戲