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文档里面的图片复制不上去,没办法了,最后附上游戏下载地址:

点击到网盘下载游戏

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