- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机软件技术基础课程设计题 目:贪吃蛇游戏作 者:电气1303 黄杰 201301000311 电气1302 张煌竟 201305020228 课题描述本课题是用C#开发的一款简单的贪吃蛇游戏,主要实现以下目标:能简便的开始游戏;能够用上下左右键控制蛇的运动方向,使之向蛇的方向运动;吞吃食物可使蛇的长度变长,撞到墙或者蛇头撞到自己游戏结束;当蛇死亡以后出现游戏得分,游戏结束。系统设计系统设计思路程序设计过程和主要代码1.新建一个Windows 应用程序,起名Snake;2.重命名Form1,改为FormMain。3.从工具栏里拖放一个picturebox到FormMain上面,设置属性:picturebox1的BorderStyle属性选择为FixedSingle,以显示边框,FormMain的KeyPreview属性设定为True,这样整个窗体可以响应键盘按键事件;4.添加pictureBox1和FormMain的事件,添加的事件有picturesBox1的Paint事件pictureBox1_Paint:用于更新游戏画面FormMain的KeyDown事件FormMain_KeyDown:用于响应用户按键FormMain的Load事件FormMain_Load:用于做一些初始化的工作5.添加两个类文件Block类:Block类是“蛇块”类,这个类就是用于描述蛇身子一节一节的信息,从运行效果图上可以看到就是那一个一个小方块的信息; Palette类:就是主画布,是游戏的主要代码;6.实现Block类Block类用于描述蛇块信息,记录每个蛇块的坐标,颜色,以及大小这些信息,具体代码如下classBlock {privateColor _color; //颜色privateint _size; //单位大小privatePoint _point; //坐标opublic Block(Color color,int size,Point p) {this._color = color;this._point = p;this._size = size; }publicPoint point {get { returnthis._point; } }//绘制自身到画布publicvirtualvoid Paint(Graphics g) {SolidBrush sb = newSolidBrush(_color);lock(g) {try { g.FillRectangle(sb,this.point.X * this._size,this.point.Y * this._size,this._size - 1,this._size - 1 ); }catch {} } } }}这个类比较简单,Point p用于记录该蛇块的“坐标”,由于蛇块是一个块,不是一个点,这里记录的是这个块的坐标。Paint函数根据坐标以及蛇块大小计算出实际绘图的坐标,进行绘图,蛇块是一个正方形(矩形),我们用矩形绘制,绘制的大小比size小1个像素,这么做的原因是为了突出蛇块与蛇块之间的间隙,也就是说蛇块与蛇块之间有1个像素的间隙,这就是我们看到游戏效果图中的蛇块是一段一段的原因两种图形的对比如下7.Palette类的实现Palette类:游戏的核心处理类,里面定义了画布的大小,背景色,蛇块列表以及游戏速度,移动方向等属性另外还提供了timer计时器,用于定时更新蛇块坐标位置,以及如何在画面上画图的函数,整个代码如下class Palette { private int _width = 30;//宽度 private int _height = 20;//高度 private Color _bgcolor;//背景色 private Graphics _gpPalette;//画布 private ArrayList _blocks;//蛇块列表 private Diretion _direction;//前进方向 private Timer timerBlock;//更新器 private Block _food;//当前食物 private int _size = 20;//单位大小
您可能关注的文档
最近下载
- 变电设备检修工职业认证隔离开关主刀闸工作原理GW23B-126型隔离开关说明书.pdf VIP
- QB1696-1993啤酒麦芽附录A比重与浸出物含量对照表.pdf VIP
- 《先兆流产》课件.ppt VIP
- (2025秋新版)部编版二年级语文上册全册PPT课件.pptx
- 清洁设备操作及日常保养标准作业规程.doc VIP
- 2025年高中政治必修同步课时练 必修一 第一课 周练过关(一).pdf VIP
- 2025年中考备考:人教版九年级物理上册全书课后练习答案.docx VIP
- 班级卫生值日表模板.xlsx VIP
- 深基坑开挖及支护施工专项方案.doc VIP
- 学习2025《初中生自我介绍》专题课件ppt.pptx VIP
文档评论(0)