Cocos2d-xna : 橫版戰略遊戲開發實驗1 開篇

pamxy發表於2014-01-03

轉自:http://www.cnblogs.com/nowpaper/archive/2012/09/11/2680852.html

這個世界上各種遊戲引擎林立,其中不乏精品,cocos2d作為一個大眾引擎非常不錯,尤其是工具齊全,最重要的是免費,加之各種團體對引擎的各種支援,cocos2d也算在移動領域開發比較常用的了,現在各種語言版本均以具備,WindowsPhone未來雖然也有了C++但畢竟C#的獨有特點也會讓支持者很難放棄,cocos2d自從有XNA版本後讓開發WP遊戲更加容易,甚至現在都可以做WinRT的通版本遊戲,呵呵這一點,可以看之前的文章。

   那就折騰一個遊戲吧

很久沒有例項的文章了,這次從用cocos2d-xna開發一個較為完整的遊戲,這樣讓大家領略C#的獨有魅力。那麼開發一個什麼遊戲呢?還是一個戰略遊戲吧,這樣基本上都能夠練習到所有的技術要點,遊戲開發第一步是策劃設計,把最終的遊戲形態想好,一般在遊戲公司裡面,這一步就是立項,雖然大多數的情況下,是一個靈光一閃的想法,然後就開幹,但優秀的開發團隊一定會在策劃設計上花上一段時間——但是不要佔據太多時間,一方面因為不能陷入到無限的YY中,另外一方面因為好的遊戲是改出來的,開始的設計能實現80%就已經很不錯了。

所以我們簡單的設計一下這個遊戲:

1、風格:三國題材

2、這是一個戰略遊戲,偏向智力延伸

3、兩方對戰遊戲玩法

4、敵我雙方在地圖左右兩邊

5、士兵自動對衝,然後攻擊路上的敵人,士兵有生命值

6、通過一種方式購買士兵:援兵或金錢

7、士兵擊敗主將取得勝利,主將有生命值且不易擊敗

8、士兵分為:步兵、槍兵、騎兵、弓兵

9、剋制關係為:步》槍》騎》步;弓兵最弱,但為遠端攻擊

10、主將具備一些特殊能力,需要金錢使用

Ok這個遊戲的初步的設計出來了,也許你的設計會更好,但不要貪多,現在會發現這個說明實在太簡要了,根本就不能說明一個遊戲,那麼,運起我們的各種設計工具,設計製作一個藍圖,如果有美術設計幫你是一件非常幸福的事,吾輩草根就只能自己搞定啦,下面是一個設計圖,美術素材來自深藍色右手的遊戲教程,好吧,它們都來自網路,別問我版權問題。

sanguo1

這只是一張非常簡要的預覽圖,大概通過它來了解遊戲是什麼玩的,更多的細節在後面邊做邊改。

   主體結構

在搞這樣的一個遊戲之前,還要想想都需要什麼功能,尤其是需要多少個介面,有必要的最好規劃一下:

sanguo3

通過上面的圖我們大概能看出具體是什麼形態,相比之前的想法階段是不是更進一步了呢?然後再細緻一點的話,可能還要做更詳細的需求分析,比如說基本角色、技能體系、地圖邏輯等,一般來說由策劃提供詳細的策劃書,然後主程式依據策劃設計完成程式架構,定義好各種介面,

那麼下面就做一下這樣的嘗試,也許有一些地方不太理解,沒有關係,在將來逐步的講解,而且第一次的架構一般來說都會遺漏,逐步的補齊就行。

第一步先建立一個簡單的cocos2d-xna的工程,在這裡,我使用WindowsPhone作為開發平臺,通過之前的文章《Win8 Metro App裡玩XNA:如何使用和移植cocos2d-xna遊戲》,也可以輕鬆的移植到Win8上,如果你安裝了最新的cocos2d-xna工程模板,那麼可以新建工程裡見到下面的介面。

QQ截圖20120909190348

如果對這一部分有疑問的話,可以參看這篇:《Cocos2d-x for WindowsPhone:萬丈高樓亦可不需平地起》。

現在開始建立整個遊戲的架構,這個時候很容易迷茫,不知道該如何下手,在初步的階段,想到什麼就做什麼就好了,想得過細也不好,早些進入早些開始,我寫了一個簡單的遊戲架子:

QQ截圖20120911205729

從Game入口點進入到AppDelegate類中跳轉場景到開始介面,如果有載入的話,一般會加入到Loading中,好吧,我們們不需要這個,對於這些類做一下簡單的說明:

SceneStart:遊戲開始的場景

SceneSetting:設定場景

SceneSelect:地圖選擇場景

SceneGame:遊戲場景

SceneOver:遊戲結束場景

對照之前的流程,我們在這幾個場景中跳來跳去即可,但是一個遊戲要有演員,在這裡表現的是Actor的類,而角色分細一點有利於開發,其中有處理資料的ActorData在這裡處理資料,一般邏輯的ActorBase在這裡處理動畫,Actor在這裡處理遊戲的邏輯,有必要的話,未來可以繼承出來英雄什麼的,那麼在這裡我們們就不要浪費精力。

本框架程式碼在:https://github.com/Nowpaper/SanguoCommander_cocos2dxna_Sample

好了,今天就折騰到這裡,在下一篇中,將會處理場景的切換和跳轉,以及對資源的處理操作。


相關文章