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文档里面的图片复制不上去,没办法了,最后附上游戏下载地址:
点击到网盘下载游戏
一、前期准备工作:
资源文件分析:
资源文件截图
二、进入开发阶段:
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文档里面的图片复制不上去,没办法了,最后附上游戏下载地址:
点击到网盘下载游戏
相关文章推荐
- Android游戏开发之旅 View类详解
- 游戏开发-SurfaceView类使用详解
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(七)传说中的A*寻径算法
- Thrift学习(1)C#调用Java开发步骤详解
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(十五) 精灵控件横空出世!②
- C#游戏开发高速入门 2.1 构建游戏场景
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(十)斜度α地图的构造及算法
- Silverlight C# 游戏开发:草动系统(一)简单的草动
- C#使用 MonoGame* 开发游戏
- 【手机游戏开发优化篇】详解手游[体积]及[运行内存]的优化篇!
- 直接操作游戏对象C#游戏开发
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(四十二)制作精美的Mini地图②
- 直接操作游戏对象C#游戏开发
- 【Unity3D游戏开发】定制新建C#文件的头描述
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(五十) 终章!新的曙光!
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(一)让物体动起来①
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(三)让物体动起来③
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(四)实现2D人物动画①
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(六)完美移动
- Silverlight C# 游戏开发:自定义鼠标(一)