- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
专业综合实践课程设计报告
目录
一 项目名称及说明 1
1.1项目名称: 1
1.2项目说明: 1
1.3调试环境 1
二 设计方案 2
2.1设计流程 2
2.2设计思想 2
三 程序详细设计说明 3
3.1游戏开始前速度选择 3
3.2随机指定蛇,食物,围墙的数组 4
3.3根据数组画出界面 5
3.4获取按键事件 6
3.5蛇移动时的处理 7
3.6蛇吃食物的处理 9
3.7蛇撞墙的处理 9
3.8游戏主窗体载入时事件函数 10
3.9计时器触发的事件 10
四 程序运行界面 11
4.1 选择级别界面 11
4.2游戏界面 11
4.3游戏结束界面 12
4.4 帮助界面 12
五 结束语 12
五 参考文献 13
一 项目名称及说明
1.1项目名称:
基于.NET窗体编程的贪吃蛇小游戏
1.2项目说明:
本项目实现的贪吃蛇小游戏以供用户进行娱乐。用户在游戏开始前可自行选择游戏速度。进入游戏后边框内会随机出现若干个绿色的食物和红色的围墙,用户通过“上下左右”键可控制蛇的移动方向吃绿色食物,同时需要避免蛇头撞到红色围墙或者边框。如果蛇头碰到绿色食物则说明食物被吃,食物在框内消失,蛇头碰到围墙或者边框则游戏失败。当食物全部吃光后进入下一关,下一关有更多的食物和围墙。按z键可加速按x键可减速。
1.3调试环境
Windows XP系统以及visual studio 2008
二 设计方案
2.1设计流程
2.2设计思想
用一个小矩形表示蛇身的一节,蛇头用黑色表示。定义三个数组分别存放蛇,食物还有围墙的像素点。利用定时器timer不断触发窗体内的事件,用背景色清理窗体,重新画出蛇,食物,围墙以达到蛇移动的效果。每次触发时都要坚持存放蛇的数组是否与食物的数组或者围墙的数组相重合,如果与食物数组相重合则取得食物数组中该点并将分散加1,如果与围墙数组相重合则调用end()函数结束游戏。此外如果用户按键则触发按键的函数,如果按键为方向键且与当前蛇前进方向不一样则改变蛇的方向与按键一致,如果按了z,x键则改变计时器timer的时间间隔缩短或增长,按了空格键则暂停。
三 程序详细设计说明
3.1游戏开始前速度选择
说明:选择速度越快,timer计时器的间隔时间越短
private void ok_Click(object sender,EventArgs e)
{
snake.Speed=300/this.speed.Value;
if(this.speed.Value==4)
snake.Speed=45;
if(this.speed.Value==5)
snake.Speed=10;
this.Close();
}
private void sp_vc(object sender,EventArgs e)
{
switch(this.speed.Value)
{
case 1:
this.l1.Text=速度: 慢;
break;
case 2:
this.l1.Text=速度: 中;
break;
case 3:
this.l1.Text=速度: 快;
break;
case 4:
this.l1.Text=速度: 很快;
break;
case 5:
this.l1.Text=速度: 死亡速度;
break;
}
}
3.2随机指定蛇,食物,围墙的数组
说明:在指定数组时考虑了游戏刚开始和游戏过关后两种情况
public void reset()//随机指定墙和点的位置
{
this.walls = new ArrayList();
this.nuts = new ArrayList();
Random ran = new Random();
this.headc = Color.Black;
//设置蛇身颜色为绿色
this.bodyc = Color.Green;
this.direction = Way.right;
//开始时
if (this.cart.Count = 3)
{
for (int i = -1; i = 1; i++)
{
原创力文档


文档评论(0)