您的位置:首页 > 编程语言 > C#

C#开发的TD防御游戏详解——星际防御

2009-11-27 23:36 211 查看
首先先看一下游戏界面:





一、前期准备工作:
资源文件分析:

资源文件截图
二、进入开发阶段:
1、 打开VS2005,新建一个WINDOW应用程序项目,项目名称为:StarGame,项目路径保存在E盘根目录下,如下图:

2、 在FORM1的窗体界面中,点击窗体按右键选择“属性”,在右边的属性窗体中,将窗体的大小(Size)改成:980,735;在窗体的标题(Text)属性改成:“星际防御”,在窗体的双缓存处理中(DoubleBuffered)属性中将值改成“True”。在窗体的事件中,双击窗体的绘制“Paint”事件,生动生成事件代码,添加注释,如下图:

事件界面

事件代码及注释
3、 在开发界面的左边的工具列表中,查找Timer控件,并双击它,(如下图),这时在窗体的下方会出现Timer的图标,点击它,在右边的属性窗口中,找到时间间隔(Inteval)属性,将值改为“50”(意思是一秒钟调用20次),将是否启动(Enable)属性的值改为“True”,(如下图)。最后在事件列表中,双击“Tick”事件,自动转到代码界面,(如下图)

Timer控件

Timer控件的属性

Timer的Tick事件的代码
4、 点击上方的生成菜单,点击“生成StarGame”,(如下图),这时将进行生成程序,接下来将所有的资源文件复制到项目目录的“StarGame/StarGame/bin/Debug”下面,(如下图),

生成菜单

资源文件复制到该目录下面
5、 回到VS2005的设计界面,点击窗体,在右边的属性列表中,找到窗体的背景图片(BackgroundImage)属性,点击右边的按钮,在弹出的“选择资源”窗口中,选择“本地资源”,点击“导入”,在弹出的打开窗口中,打开刚刚复制到项目文件下面的BIN文件中的“背景图片.jpg”文件,并依次点击“确定,(如下图)。

选择背景图片
6、 回到VS2005的代码界面中,分别定义存放“分数,金钱,生命“的INT变量,(如下图),在窗体的绘制事件中编写绘制代码,分别将玩家的分数、金钱、生命的值进行绘制出来,(如下图),写好代码后,可以点击上方菜单的“调试”下面的“开始执行(不调试)”,进行查看效果。

定义金钱、分数、生命属性

画字的事件代码
7、 创建存放敌人走动所有图片的集合对象“List<Image>”、控制敌人图片切换的帧数变量“monsterIndex”和控制敌人图片的矩形大小(monsterRect),(如下图)

8、 在设计界面中,双击窗体,转到代码界面,并生成窗体的加载事件,在该事件中加载敌人向右移动的所有图片,打开存放敌人向右移动的文件可以看到,敌人图片文件名是按照“5vfr43-(从222到245).png”的规律进行命名并组合成一系统的走动动作,所以在加载这些图片时可以使用循环的方式加载这些图片,(如下图):

9、 在窗体的绘制事件中,绘制出敌人的图片(如下图代码),这时可以运行一下程序,这时可以看到敌人图片,但是发现敌人的图片不会动,所以我们需要时间的“Tick”事件中,不停地切换图片的帧数,(如下图),这时可以再运行一下程序,可以看到敌人图片动起来了。

绘制敌人图片

不停切换敌人图片帧数
10、 接下来实现让敌人从左边出发的位置慢慢地向右移动,图片的向右移动其实就是图片的X轴坐标进行累加,可以在时间的“Tick”事件中,不停地累加图片矩形大小中X轴的值,(如下图),这时可以运行一下程序看到敌人图片慢慢的向右移动。

11、 接下来添加塔,跟敌人同样的,分别添加用来存放塔图片的集合(towerList)、控制塔图片的帧数(towerIndex)、塔图片的矩形大小(towerRect),另外需要添加控制塔攻击范围的矩形大小(towerActRect),(如下图),接着在窗体的加载事件中同样需要加载塔的图片,(代码如下图),同时需要让塔动起来,需要在时间的“Tick”事件中添加控制塔帧数,(如下图),最后就是在窗体的绘制事件中添加绘制塔图片的代码,(如下图)。

存放塔的参数变量

在窗体的加载事件中添加读取塔的图片

在时间的“Tick”事件中添加控制塔图片的切换

在窗体的绘制(onPaint)事件中添加绘制塔图片

郁闷,放在WORD文档里面的图片复制不上去,没办法了,最后附上游戏下载地址:

点击到网盘下载游戏
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: