毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 计算机论文 >> 正文

C#的贪吃蛇游戏设计+需求分析+概要设计 第4页

更新时间:2016-10-7:  来源:毕业论文
4.1.3游戏界面
当进入游戏窗口后,只要玩家点击菜单栏下的“游戏动作→开始游戏”选项或“ENTER”键,就可以开始游戏。蛇的初始位置为游戏场地的中心,颜色为黑色;食物为随机产生,颜色为红色;游戏背景为绿色,界面右侧为两个显示窗口为黑色,上面框实时显示摄食数、分数、当前所在的级数;下面框显示操作属性,方便玩家。整个游戏框架按红、黑、绿三色设计。
游戏开始后,蛇通过蛇头headPoint获取下一个位置,然后将下一个点绘制成蛇体新蛇头,而同时蛇尾则绘制成游戏框架GameFrame的一部分,从而实现了蛇体不断向前移动的效果。当蛇遇到食物时,蛇头headPoint与食物foodPoint重合,使其绘制成为新的蛇头,然后又重新随机产生一个食物。当蛇吃够20个食物时,也就是分数达到200时,游戏会暂停,提示玩家选择下一关进行游戏。当蛇头碰到自身或是碰到墙壁时,则游戏暂停,系统提示玩家是否重新开始游戏。如果选择“否”,则游戏结束,否则游戏重新开始。
4.2 软件实现
程序结构由一个Form,两个Class实现。FormMain是程序主界面,里面就一个PictureBox控件。Block类是“蛇块”类,这个类就是用于描述蛇身子一节一节的信息,从运行效果图上可以看到就是那一个一个小方块的信息。Palette类就是主画布,是游戏的主要代码。  
4.2.1 FormMain结构
从工具栏里拖放一个picturebox到FormMain上面,设置属性。
picturebox1的BorderStyle属性选择为FixedSingle,这样能显示边框。FormMain的KeyPreview属性设定为True,这样整个窗体可以响应键盘按键事件设定完[1]。
(1)添加pictureBox1和FormMain的事件,添加的事件有picturesBox1的Paint事件pictureBox1_Paint;FormMain的KeyDown事件FormMain_KeyDown;FormMain的Load事件FormMain_Load。pictureBox1_Paint用于更新游戏。FormMain_KeyDown用于响应用户按键,FormMain_Load用于做一些初始化的作[2]。本文来自优*文`论'文&网,毕业论文 www.youerw.com 加7位QQ324~9114找原文
(2)添加Block类和Palette类
(3)实现Block类
Block类用于描述蛇块信息,记录每个蛇块的坐标,颜色,以及大小这些信息。
在这个类,Point p用于记录该蛇块的“坐标”,注意这里的坐标不是真正的坐标,由于蛇块是一个块,不是一个点,这里记录的是这个块的坐标,比如,如果是Point(3,2),那么就是表示第四列,第三行的那个块。
Paint函数根据坐标以及蛇块大小计算出实际绘图的坐标,进行绘图,蛇块是一个正方形(矩形),我们用矩形绘制,在代码中我们看到,绘制的大小比size小1个像素,这么做的原因是为了突出蛇块与蛇块之间的间隙,也就是说蛇块与蛇块之间有1个像素的间隙,这就是我们看到游戏效果图中的蛇块是一段一段[3].
4.2.2 Palette类的实现
Palette类是真个游戏的核心处理类,里面定义了画布的大小,背景色,蛇块列表以及游戏速度,移动方向等属性。另外还提供了timer计时器,用于定时更新蛇块坐标位置,以及如何在画面上画图的函数。
从函数定义中我们可以大致了解一下这个类的功能以及实现方法了,类的属性定义就不再说了。接下来我们一步一步介绍各个函数的实现。
(1)Start函数
Start函数用于开始游戏,这个函数的内部其实就是设定食物,以及触发计时器。
这里面定义了计时器的事件触发间隔,是通过level然后找到speed数组里的对应毫秒值设定的。然后触发事件是OnBlockTimedEvent,这个函数后面再讲。最后是启动计时器开始计时[7]。
(2) OnBlockTimedEvent函数
OnBlockTimedEvent函数是计时器的执行函数,这个函数用于更新蛇块信息列表,以及检测游戏是否结束等等。
我们可以看到,函数内部调用了两个函数,一个是Move函数,一个是CheckDead函数[6]。

上一页  [1] [2] [3] [4] [5] 下一页

C#的贪吃蛇游戏设计+需求分析+概要设计 第4页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。