1. 程式人生 > >SDL農場遊戲開發 1.環境搭建

SDL農場遊戲開發 1.環境搭建

由於我個人受到傳統農場類遊戲的薰陶,因此萌生出了開發一個類似於QQ農場的遊戲。

本次遊戲打著SDL的幌子(這麼說自己真的好麼),其實使用的是SDL_Engine,它是我閒暇時模仿cocos2dx而寫的一個遊戲框架。個人認為了解下SDL_Engine框架是有點用的(去掉了cocos2dx中精華的部分,然後加上自己寫的糟粕-_-),但是不太建議使用這個框架(裡面的坑比較多);然後就是SDL_Engine的API等類似cocos2dx,不過儘管如此,他們之間並不相容,所以程式碼只能在SDL_Engine下執行,不過開發嘛,重在思想。

好了,廢話不多說,我已經完成了大部分的功能,其執行介面大致如下:

 

 

上面是種植介面,不太善於介面,因此種植介面、揹包介面和商店介面類似,只不過邏輯不同,比如種植介面是種植作物,而商店主要是購買。

大致說下農場遊戲的整個框架吧,如下圖:

  • FarmScene:農場遊戲的主場景,負責層之間的排程和通訊。
  • 土壤層:負責顯示整個地圖,同時也負責管理土壤,比如增加土壤、土壤的狀態的更新等。
  • 作物層:負責管理作物和顯示作物。
  • 農場UI層:負責顯示一些控制元件,比如開啟商店、開啟倉庫等。
  • 特效層:負責顯示特效,在這裡主要負責顯示作物的成熟特效。
  • 對話方塊:目前大致分為兩種對話方塊,一種是滑動條對話方塊,主要用在出售/購買時確定物品的個數;另一種則是通用的對話方塊,來確定是否進行某種操作。

本遊戲可以認為是MVC框架,View主要交給了SDL_Engine內的Sprite進行渲染;Controller則是FarmScene和上面的幾個層以及它們之間的互動;Model則主要分為兩個類:StaticData和DynamicData類。顧名思義,StaticData負責靜態資料,即在遊戲執行過程中不會發生改變的資料,比如作物的種子價錢、成熟時間、預計產量等;DynamicData類則主要負責在遊戲過程中時常變化的資料,比如金幣,揹包內的物品等等。

在此推薦以下兩本書,是我個人認為cocos2dx入門比較好的書籍(排名不分先後):

《cocos2dx遊戲開發之旅》,這本書是我的入門書籍,裡面的內容確實不錯。(SDL_Engine中的UI系統就是參考的這本書)

《製作自己的捕魚達人》:這本書也很不錯,前面逐步講解了相關知識在捕魚遊戲中的應用,後面則是開發實戰環節,實戰環節讓我收益頗豐。

 

本系列託管於github:https://github.com/sky94520/Farm

另外,我的開發環境是ubuntu,使用了cmake作為編譯工具,如果移植到其他平臺可能需要改變編碼和行結束字元。