基于C#语言WinForm窗体实现贪吃蛇游戏项目设计代码

其他 潘老师 3年前 (2020-12-25) 3272 ℃ (0) 扫码查看

这是潘老师在给淮师学生进行为期两周的C#体验课演示的一个经典游戏项目——贪吃蛇游戏,整体设计也比较简单,只分为了简单、普通和困难3种模式,项目整体效果还是不错的,这里给大家提供了项目的源码下载,注意不是Java版的哦,是C#版的!

一、项目整体设计

1、界面效果

(1)开始挑战页面
1)Form大小496*358
2)背景图-bg1.png
3)Icon图标-game.icon
4)难度选择(简单(500ms),普通(300ms),困难(100ms))
5)开始挑战按钮start.png
基于C#语言WinForm窗体实现贪吃蛇游戏项目设计代码
(2)运行页面
1)Form大小616*636
2)背景图-bg2.png(动态画上去)
3)Icon图标-game.icon
4)长度Label:内容5,得分Label:内容0
5)Timer,默认值100ms
6)蛇和苹果(动态画上去)
基于C#语言WinForm窗体实现贪吃蛇游戏项目设计代码

2、需求分析

1)选择困难程度,点击开始挑战实现运行对应难度级别的游戏
2)蛇默认往右运动,上下左右键可以改变运动方向
3)苹果食物在地图上随机位置生成
4)蛇吃到苹果,自身长度加1,分数加10
5)蛇吃到自身或撞墙,游戏结束
6)地图每隔一定时间重画一遍,实现动态效果

3、类设计

(1)WinForm窗体类
Form1.cs-开始挑战界面
属性:
游戏难度
方法:
开始挑战点击方法:
创建Form2,获取难度

Form2.cs-游戏运行界面

属性:地图

构造方法:初始化地图
方法:
1)Load方法:设置游戏难度
2)定时方法:创建画笔,画地图
3)Paint方法:创建画笔,画地图
4)键盘监听方法:根据键盘输入设置蛇运行的方向
5)游戏运行方法(需判断是否吃到食物、是否吃到自己、是否撞墙,如有结束游戏,如果都没有继续前行)

(2)食物类Food.cs
属性:
1)食物的左上角坐标
方法:
1)根据食物坐标显示食物

(3)蛇块类 Block.cs
属性:
1)是否为蛇头
2)蛇块左上角坐标
方法:
1)根据坐标及是否为蛇头来画蛇块

(4)蛇类 Snake.cs
属性:
1)存放蛇的数组(蛇由蛇块组成),初始长度为5
2)蛇的运动方向(Up-上,Right-右,Down-下,Left-左),默认Right
3)蛇头左上角坐标

构造方法:
只有一个参数-地图左上角坐标
蛇尾根据地图左上角坐标生成,并生成其余4个蛇块(最后一个为蛇头),依次存入数组中

方法:
1)蛇根据传入的方向参数转换运动方向
注意:如果蛇原来向上或向下,那么只能往左或右转向
如果蛇原来向左或向右,那么只能往上或下转向

2)蛇吃到食物长度加1的方法(数组扩容)

3)蛇在没吃到食物的情况下向前运动的方法(数组缩容,去掉蛇尾,再调用蛇吃到食物长度加1的方法,即可实现)
4)画出蛇的方法
5)判断是是否碰到自己的方法
6)判断是否吃到了食物

(5)地图类 Map.cs
属性:
1)地图左上角坐标,默认(20,45)
2)地图单元格长度,默认20px
3)地图长度,默认540px
4)地图宽度,默认520px
5)食物
6)蛇
构造方法:
在创建地图的构造方法中需要:
1)初始化蛇
2)初始化食物(随机生成)

方法:
1)在地图范围内生成随机位置的食物方法
2)判断蛇是否撞墙(超出地图范围)
3)画地图

资源下载

项目压缩包中包含如下文件:

  • 设计文档
  • 项目素材
  • 项目源码

三、使用说明

直接使用Visual Studio工具打开Snake.sln文件即可,然后运行Program.cs程序入口文件即可


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/project/1794.html
喜欢 (15)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】