C++遊戲開發入門項目精選:製作經典遊戲拳皇97
對於80、90後來說,拳皇97一定不會陌生,這款經典的橫版格鬥遊戲,是一代人的回憶,許多人接觸它都是在街機上,而今天,小編要教大家製作PC版的拳皇97!看黑板,表演即將開始——
遊戲運行效果呈現
好吧遊戲界面和人物模型有點丑,不過這不是重點,重點是學習遊戲開發的思路。
一、利用GDI繪製圖形
GDI是windows與生俱來的圖形設備介面(GraphicsDeviceInterface)的英文縮寫,主要任務是負責系統與繪圖程序之間的信息交換,處理所有Windows程序的圖形和圖像輸出。
準備一張BMP格式的背景圖片,創建一個窗體,在窗體上進行繪製,然後通過GetDC函數來獲取窗體的設備環境DC
獲取設備環境後,還需要在內存中創建一個設備環境,我們在內存中畫圖,畫好以後,直接拷貝到窗體的設備環境上
二、關於動畫的實現
拳皇吸引玩家的一定是那酣暢淋漓的打鬥動作,我們知道用遊戲引擎的骨骼動畫是最常見的,不過跟3D的渲染不同,2D遊戲是貼圖的藝術。
例如上面的兩個動畫,通過一個數組把它們保存起來,然後依次播放。
?運行效果
貼圖基本有兩種方式,一種採用定時器,一種則是利用消息循環,目前都是採用的第二種繪製方式(消息循環),也就是說遊戲中的動畫都是一幀一幀的帖上去的,就像放電影一樣。
?添加了技能運行效果圖:
其實像拳皇97、地下城與勇士這類2D遊戲是比較適合新手小白開發的,相比於3D遊戲的骨骼動畫,2D橫版遊戲的序列幀更簡便。
在開發過程中,我們會用到C/C++語言、Win32窗口創建、消息機制、GDI三緩衝繪圖原理等知識點。
●學習過程中你能學會:
1.使用API函數創建好Win32窗口。
2.將準備好的遊戲素材載入到程序中。
3.使用GDI圖形設備介面函數繪製地圖與角色。
4.利用C/C++語法結合數據結構與演算法演算法處理遊戲數據。
5.編寫遊戲邏輯。
●學習成效:
1.跳出控制台,在界面編程中去鍛煉自己的邏輯思維能力。
2.了解windows程序設計的基本框架。
3.可嘗試去開發各種界面化的程序,例如雷霆戰機,俄羅斯方塊,坦克大戰等等。
一句RNG牛逼,不知刷爆了多少人的朋友圈,而LOL等六項電競正式入選亞運會,更是刷新了我們對遊戲的認知
,在眼下全民娛樂的時代,遊戲早已成為我們生活的一部分,遊戲開發也是當下和未來絕對熱門的行業。
怎麼樣?是不是也想嘗試著自己做一款小遊戲了呢?
那麼最後送大家一個福利
免費C/C++技術交流群
進群領取
拳皇97
及更多項目學習資料
長按二維碼識別
或添加Q群:
335938634
不定期有Socket編程和Hook(鉤子)編程等網路黑客技術、騰訊內部核心技術比如QQ截圖系統、編寫雷霆戰機等經典遊戲的
免費知識分享課。
點擊
閱讀原文
,也可以參與哦※Linux之父又要發飆了!賽門鐵克疑似違反了Linux的GPL許可
※Nginx 使用札記
TAG:Linux學習 |