本系列文章由七十一霧央編寫,轉載請註明出處。
http://blog.csdn.net/u011371356/article/details/9299121
作者:七十一霧央 新浪微博:http://weibo.com/1689160943/profile?rightmod=1&wvr=5&mod=personinfo
鑒於有同學需要代碼學習,我以後會把代碼整體的粘貼出來,以方便大家參考,但是還是建議大家自己動手寫一遍。在筆記二中調整視窗的代碼寫完後,在本系列教程中大家就只用關注CChildView.h和CChildView.cpp這兩個檔案,所以我會每次貼出這兩個檔案的全部代碼。
by霧央 2013.7.14
對於內容較多的章節,為了方便大家自己嘗試,我會上傳工程檔案,大家可以下載回去自己感受一下。
by霧央 2013.7.15
看到大家對於遊戲開發都比較熱情,從筆記三之後,霧央都上傳了原始碼,並且都是0積分下載,大家可以參考著原始碼看博文。
by霧央 2013.7.18
從筆記十一開始,霧央將系列名稱更新為《C++遊戲開發》,原因是這個教程並沒有多麼深入MFC,只是借用了MFC的架構和貼圖,原來名稱可能誤導一些同學,而且霧央更希望講解的是遊戲開發的一些思想,而不局限於MFC。
by霧央 2013.7.22
一、我的遊戲開發學習之路
很多人走上電腦道路最初的原因就是懷揣著遊戲開發的夢想,至少我是這樣的。最初學習的日子是極度痛苦的,對於遊戲開發充滿著熱情,但是卻只能每天在控制台黑乎乎的視窗下寫程式,不知道怎麼樣才能寫出圖形介面的遊戲程式,我記得我當時在網上四處搜尋資料得到的結果大都是說要去學習一門圖形庫,比如DirectX、OpenGL或者學習WIN32 API,再古老的就是graphic庫了。DirectX和OpenGL對於一個新手來說真的太難了,一大堆複雜的名詞和概念,對於數學的要求都讓人望而退卻;WIN32
API函數太多,講解遊戲開發的資料太少,至少當時我是沒怎麼搜尋到,而graphic庫是TC專用的,大概已經沒有人用了,當時一度感覺開發一個好看的遊戲太艱難了,好在後來在網上搜到了EasyX圖形庫(http://www.easyx.cn/),這個是由yangw80先生利用windows編程開發的一個圖形庫,介面和graphic基本一樣,且配有詳細的chm文檔說明,建議剛接觸編程的同學可以去瞭解一下,至少它可以讓你快速開發出一個圖形程式,很感謝BestAns寫的Easyx圖形開發教程http://www.easyx.cn/skills/View.aspx?id=45,當時我剛學完了C語言,看著這個教程,做出了自己的圖形介面的學產生績管理系統和貪吃蛇、掃雷遊戲。這個圖形庫支援的功能不是很多,比如實現輸入框就是蠻困難的一個事情,但是利用它,實現一個像樣的遊戲demo已經不是問題了,也可以告別控制台視窗了。
後來我們學校進行了專業實訓,實訓的內容是MFC開發,做的是遊戲,如下:
先來一張城鎮地圖:
再來一張野外地圖:
做的是一個像冒險島那樣的橫版遊戲,雖然不是很完善,但是遊戲最基本的東西基本都具有了,當然要非常感謝我的美工隊友的付出,事實上,我個人認為,遊戲基本就是美術+if/else堆起來的。
一直以來,自己對於3D遊戲充滿了興趣,後來在CSDN看到淺墨大神的專欄《Visual C++遊戲開發》後,開始看著淺墨的教程,自學3D遊戲,到現在算是剛入門吧,可惜淺墨由於非常忙,停止了部落格的更新。
上面大概就是自己在遊戲開發道路上的學習過程,到現在,我仍然是初學者,但是我很佩服淺墨的分享精神,對過去自己所走的彎路、經曆的痛苦也記憶猶新,希望可以把自己所學習到的知識分享出來,協助那些曾和我一樣懷有遊戲開發夢想的少年們。
二、關於《MFC遊戲開發》系列
1.物件導向
我文筆不好,技術也一般,因此這個《MFC遊戲開發》系列面向的對象是遊戲初學者,有什麼問題,路過的高手請指出,在此表示感謝。
2.學習基礎
學習的要求是掌握了C語言,對於C++只需要知道最基礎的類的概念就好,不熟並不妨礙你寫遊戲。遊戲採用MFC單文檔開發,如果不會MFC也沒有什麼問題,我會從第 一步手把手進行圖文教程,我的開發環境是VS2010,WIN7。
3.更新
現在是暑假期間,我時間比較多,會儘快更新。我保證,在教程結束的時候,大家至少可以寫出我上面貼出的中的遊戲,即一個2D遊戲demo。
4.反饋
大家有什麼問題歡迎在部落格評論中留言或者新浪微博私信我,我新浪微博叫七十一霧央,我會及時回答(如果我知道的話,呵呵)。
說明:在網上很多人不建議使用MFC開發遊戲,它封裝了很多使用不到的東西,GDI繪圖效率低下,但是我覺得,遊戲開發的思想是一樣的,MFC只是一種工具,只要利用它能方便我們做出自己的遊戲,實現自己的夢想,又有何不可呢?況且,上面我做的2D動作角色扮演遊戲,FPS可以達到60幀,不會產生一點點的卡,也就是說,我們做的是簡單的遊戲,效率這方面我覺得暫時可以不用考慮MFC帶來的影響。
另外,我知道很多懷有遊戲開發夢想的同學,選擇了去學習一個遊戲引擎。確實,利用遊戲引擎可以快速的開發出自己的遊戲,甚至利用RPG Maker這樣的工具,連一行代碼都不用寫,就可以拖出一個像樣的RPG遊戲,但是這樣對於我們自己的成長,又有多大的協助呢?從最基礎的部分學習起,我們可以認識到遊戲引擎的實現原理,甚至寫出自己的遊戲引擎,霧央現在就打算慢慢寫一個自己的遊戲引擎。我覺得,在學習階段,大家還是自己從底層寫代碼做遊戲比較好,工作階段,大家利用遊戲引擎開發遊戲才是最正確的選擇。
《MFC遊戲開發》筆記一到這裡就結束了,更多精彩請關注下一篇。如果您覺得文章對您有協助的話,請留下您的評論,點個贊,能看到你們的留言是我最高興的事情,因為這讓我知道我正在協助曾和我一樣迷茫的少年,你們的支援就是我繼續寫下去的動力,願我們一起學習,共同努力,複興國產遊戲。
對於文章的疏漏或錯誤,歡迎大家的指出。