- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于VS2010的双人贪吃蛇设计与实现.doc
基于VS2010的双人贪吃蛇设计与实现
摘要:VS2010应用程序的构成包括多个对象和相应文件。构成应用程序的文件有各类由AppWizard所生成的头文件,还有其所生成的实现文件两大部分。本文在简单介绍VS2010应用程序结构的基础上,较为详细描述了游戏的基本原理、逻辑功能设计、具体物理实现及其测试。测试结果表明,本款游戏软件具有一定的实用价值。
关键词:VS2010 贪吃蛇游戏 功能设计 物理实现
中图分类号:TP311.52 文献标识码:A 文章编号:1007-9416(2015)04-0164-01
1 VS2010应用程序结构简介
Visual Studio是微软公司推出的开发环境。是目前最流行的Windows平台应用程序开发环境[1]。VS2010应用程序的构成包括多个对象和相应文件。构成应用程序的文件有各类由AppWizard所生成的头文件,还有其所生成的实现文件两大部分。基于此研发的数字竞猜游戏能丰富人们的生活,具有一定的实用价值[2-4]。
2 双人贪吃蛇游戏的简介
2.1 游戏模式
本游戏提供双人控制模式。两条蛇用红色与绿色块状表示。上下左右四个控制键和w-s-a-d四个字母键分别控制绿红蛇的移动方向。红、蓝和黄三色点分值不同的食物。每条蛇吃掉一个食物就增一格。绿蛇在不碰到红蛇及其四周墙壁,且不吃掉本身时,尽量获得高分。红蛇在碰到墙壁或吃到自身时停止不动,并失去控制,成为一个障碍物。在游戏中可对绿蛇予以控制,直到绿蛇碰到障碍或者自己导致游戏结束。
2.2 得分记录
游戏中若得分达到指定的阶段后,系统会自动提升蛇的移动速度,同时增加整体游戏的难度。
2.3 游戏奖惩
吃掉红色食物积分加一;吃掉蓝色食物积分加二;吃掉黄色食物积分加三。惩罚就是蛇失去移动的能力,成为障碍物。
3 双人贪吃蛇游戏设计分析及功能模块
3.1 设计分析
对象蛇可将蛇看作一组动态变化的一维数组,游戏框架是一维数组在二维数组中移动以及改变长度大小。对象由游戏背景、蛇的绘画和附加功能等组成。将蛇看作一个长度可变的一维数组,使用顺序表储存。初始化蛇,画蛇,移动,吃食物,判断游戏是否结束等对象处理。用一个新类用于描述单个蛇的属性。
3.2 功能模块
游戏控制:初始化两条蛇,控制蛇的移动方向,显示食物以及隐藏食物;当蛇碰到障碍后改变游戏控制方法或者结束游戏。积分模块:即时显示用户的得分情况,根据游戏中是否填入用户的姓名来决定是否记录用户每一局的游戏得分。调节难度:分为手动调节难度和自动调节难度,从手动调节难度来说可以通过游戏界面上的两个按键来完成对游戏难度的手动调整,从自动调节难度来说是以用户在游戏中得到的分数达到一定的程度来决定的。背景音乐播放:可以打开用户指定的音频文件,同时具有播放和暂停文件的功能。
4 双人贪吃蛇游戏系统实现
本游戏基于顺序表,实现游戏控制,积分模块,难度调节模块,背景音乐播放模块。使用C++/CLI 在VS2010平台上实现,用户界面是.Net架构下的Windows Form窗体界面。主要模块实现及其结果如下。
4.1 类的设定
本游戏需设计两个Form窗体类:Form1和ScoreSave。在这些窗体类中需要用到ListView,PictureBpx、Button等控件。另外添加两个类,一个蛇的类,一个分数的类。
两个类的实现代码:
初始化蛇:
number=6;
snakebody[0]=System::Drawing::Point(sx0,sy0);
for(int i=1;iK+1,snakebode[i-1]-Y);
还有控制绘蛇的颜色、移动蛇。分数类定义:
Private:
String^ NAME;
System::Int32 score;
Public:
ListViewItem^ dataItem;
4.2 主要模块实现
游戏控制:本模块是用户可即时控制的交互部分,主要使用到了Form1窗体,该模块在Form1中有两个部分,一个部分是游戏区域,在本区域中仅存在一个picturebox控件,但是同时使用了Timer控件来确保蛇的移动,另一个部分是控制游戏进程的三个button按钮,分别提供了游戏的开始暂停,游戏帮助以及退出功能。
积分模块:本模块是显示并且储存用户实时得分情况的部分。本模块中,Form1窗体中,使用到了label、button和textbox三种空间,在本模块中需要用到记录分数的Int32变量,同时本模块定义了一个新的窗体,在该窗体中使用到了listview,button模块,在
您可能关注的文档
最近下载
- 2023年保险中介从业人员资格考试模拟题与答案217.pdf VIP
- 《2019版预防和治疗压力性损伤快速参考指南》简要分享.ppt VIP
- (2025秋新版)人教版二年级数学上册全册教案.doc
- 河北省2012装饰装修定额说明及计算规则(含定额总说明.doc VIP
- 新沪教牛津版九年级上册英语全册教案.pdf VIP
- 阀门井阀门更换施工方案.docx
- 2025年度酒店预订服务合作协议.docx VIP
- GB/T 4214.17-2024家用和类似用途电器噪声测试方法 干式清洁机器人的特殊要求.pdf
- 国防幼儿园主题课件.pptx
- 2025上海韩天衡美术馆招聘1人笔试模拟试题及答案解析.docx VIP
文档评论(0)