C#開發的TD防禦遊戲詳解——星際防禦

首先先看一下游戲界面:

 

一、前期準備工作:

資源文件分析:

 

資源文件截圖

二、進入開發階段:

1、  打開VS2005,新建一個WINDOW應用程序項目,項目名稱爲:StarGame,項目路徑保存在E盤根目錄下,如下圖:

 

2、  FORM1的窗體界面中,點擊窗體按右鍵選擇“屬性”,在右邊的屬性窗體中,將窗體的大小(Size)改成:980735;在窗體的標題(Text)屬性改成:“星際防禦”,在窗體的雙緩存處理中(DoubleBuffered)屬性中將值改成“True”。在窗體的事件中,雙擊窗體的繪製“Paint”事件,生動生成事件代碼,添加註釋,如下圖:

 

事件界面

 

事件代碼及註釋

3、  在開發界面的左邊的工具列表中,查找Timer控件,並雙擊它,(如下圖),這時在窗體的下方會出現Timer的圖標,點擊它,在右邊的屬性窗口中,找到時間間隔(Inteval)屬性,將值改爲“50”(意思是一秒鐘調用20次),將是否啓動(Enable)屬性的值改爲“True”,(如下圖)。最後在事件列表中,雙擊“Tick”事件,自動轉到代碼界面,(如下圖)

 

Timer控件

 

Timer控件的屬性

 

TimerTick事件的代碼

4、  點擊上方的生成菜單,點擊“生成StarGame”,(如下圖),這時將進行生成程序,接下來將所有的資源文件複製到項目目錄的“StarGame/StarGame/bin/Debug”下面,(如下圖),

 

生成菜單

 

資源文件複製到該目錄下面

5、  回到VS2005的設計界面,點擊窗體,在右邊的屬性列表中,找到窗體的背景圖片(BackgroundImage)屬性,點擊右邊的按鈕,在彈出的“選擇資源”窗口中,選擇“本地資源”,點擊“導入”,在彈出的打開窗口中,打開剛剛複製到項目文件下面的BIN文件中的“背景圖片.jpg”文件,並依次點擊“確定,(如下圖)。

 

選擇背景圖片

6、  回到VS2005的代碼界面中,分別定義存放“分數,金錢,生命“的INT變量,(如下圖),在窗體的繪製事件中編寫繪製代碼,分別將玩家的分數、金錢、生命的值進行繪製出來,(如下圖),寫好代碼後,可以點擊上方菜單的“調試”下面的“開始執行(不調試)”,進行查看效果。

 

定義金錢、分數、生命屬性

 

畫字的事件代碼

7、  創建存放敵人走動所有圖片的集合對象“List<Image>”、控制敵人圖片切換的幀數變量“monsterIndex”和控制敵人圖片的矩形大小(monsterRect),(如下圖)

 

8、  在設計界面中,雙擊窗體,轉到代碼界面,並生成窗體的加載事件,在該事件中加載敵人向右移動的所有圖片,打開存放敵人向右移動的文件可以看到,敵人圖片文件名是按照“5vfr43-(從222245.png”的規律進行命名並組合成一系統的走動動作,所以在加載這些圖片時可以使用循環的方式加載這些圖片,(如下圖):

 

9、  在窗體的繪製事件中,繪製出敵人的圖片(如下圖代碼),這時可以運行一下程序,這時可以看到敵人圖片,但是發現敵人的圖片不會動,所以我們需要時間的“Tick”事件中,不停地切換圖片的幀數,(如下圖),這時可以再運行一下程序,可以看到敵人圖片動起來了。

 

繪製敵人圖片

 

不停切換敵人圖片幀數

10、              接下來實現讓敵人從左邊出發的位置慢慢地向右移動,圖片的向右移動其實就是圖片的X軸座標進行累加,可以在時間的“Tick”事件中,不停地累加圖片矩形大小中X軸的值,(如下圖),這時可以運行一下程序看到敵人圖片慢慢的向右移動。

 

11、              接下來添加塔,跟敵人同樣的,分別添加用來存放塔圖片的集合(towerList)、控制塔圖片的幀數(towerIndex)、塔圖片的矩形大小(towerRect),另外需要添加控制塔攻擊範圍的矩形大小(towerActRect),(如下圖),接着在窗體的加載事件中同樣需要加載塔的圖片,(代碼如下圖),同時需要讓塔動起來,需要在時間的“Tick”事件中添加控制塔幀數,(如下圖),最後就是在窗體的繪製事件中添加繪製塔圖片的代碼,(如下圖)。

 

存放塔的參數變量

 

在窗體的加載事件中添加讀取塔的圖片

在時間的“Tick”事件中添加控制塔圖片的切換

 

在窗體的繪製(onPaint)事件中添加繪製塔圖片

 

鬱悶,放在WORD文檔裏面的圖片複製不上去,沒辦法了,最後附上游戲下載地址:

點擊到網盤下載遊戲

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章