版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、XXXX学院计算机科学系Undroid程序设计课程设计报告题 目: 贪吃蛇专 业:计算机科学与技术班级:B11计科班学号:0姓名:凌波微步Q Q : 25指导教师:2014年6月目录第一章绪论2游戏简介2开发目的及意义3开发环境及工具3第二章需求分析4游戏界面分析4游戏角色分析4游戏控制分析4第三章总体设计5系统功能模块层次图5运行机制6贪吃蛇功能流程图7第四章详细设计与实现9SnakeActivity 类9MyTile 类10NextActivity 类18SysApplication 类19界面设计20第五章测试26功能测试26测试结果27第六章结论27第一章绪论游戏简介贪吃蛇游戏是一款手
2、机游戏,同时也是一款比较需要耐心的游戏。贪吃蛇游 戏是一条蛇,不停地在手机屏幕上游走,吃在手机屏幕上出现的食物。当蛇吃掉 1个食物后会变长,并且吃完食物时食物会消失,并立即随机生成1个新的食物, 只要蛇头碰到屏幕四周或者碰到自己的身子,蛇就立即毙命。开发目的及意义通过本次课程设计,了解android软件的开发过程,熟悉并掌握JAVA语言, 程序关键在于表示蛇的图形及蛇的移动。用一个小矩形块表示蛇的一节身体,身 体每长一节,增加一个矩形块,蛇头用一节表示。移动时必须从蛇头开始,所以 蛇不能向相反的方向移动,如果不按任意键,蛇自行在当前方向上前移,但按下 有效方向键后,蛇头朝着该方向移动,一步移动
3、一节身体,所以按下有效方向键 后,先确定蛇头的位置,而后蛇的身体随蛇头移动。意义是方便人们在休闲时通 过玩手机游戏获得一点快乐,同时锻炼自己的大脑。开发环境及工具在WindowB下进行,采用eclipse开发工具,基于安卓操作系统。环境搭建:1. JDK安装2. Eclipse 安装3. Android SDK 安装4ADT安装创建AVD第二章需求分析游戏界面分析操作界面应该人性化设计,提示玩家按什么按键开始游戏,开始游戏之后,在游 戏界面中,以坐标的形式对整体界面进行划分,将界面划分为网格,还应设计蛇 的样式,食物的样式和墙的样式,在蛇吃到食物后的样式,还有游戏结束时的界 面显示,游戏结束后
4、,要显示所得的分数。游戏角色分析设置游戏贪吃蛇初始时由固定小矩形块组成,在游戏中,要随机出现由单个矩形 块构成的食物,并且设置随机出现的食物不要出现在蛇的身体中,在蛇吃到食物 的时候,蛇的身体加长。此外,要判定游戏成功与失败的条件,当蛇的头和尾相 撞或者蛇的头部撞到了墙上,则游戏失败,此时游戏结束,界面显示所得分数。 另外蛇的移动原理,由外部按键设置监听控制蛇头的移动方向,在方向的指引下 进行移动,蛇及食物的位置都是由坐标数组确定的,食物的位置也是随机产生的 蛇的移动原理是后一矩形块覆盖前一个矩形块。当一个食物被吃掉的时候,要自 动随机生成并显示下一个食物的位置。这些都是在设计过程中需要实现的
5、。游戏控制分析 游戏中需要通过按键对蛇的移动方位进行控制,共需要设置四个方位,分别是 “东”“西”“南”“北”,在按键上用“上”“下”“左”“右”,按键与执行部分涉 及到监听,通过监听指示蛇的运动,此外,要设置蛇移动是的默认方向为右” ,蛇的移动只能是90度偏转,不能进行180度偏转。此外还要设置游戏的状态, 有运行和结束两种状态,蛇体变长的时候用静态变量进行加分。可行性分析贪吃蛇游戏是一种简单的大众的游戏,自从进入现代化以来,深受广大电脑 和手机玩家的喜爱,所以做一个简单的贪吃蛇小游戏是有用的。本次设计我主要运用Java语言来完成。Java语言是一种跨平台,适合于分 布式计算环境的面向对象编
6、程语言,用Java写的应用程序不用修改就可在不同 的软硬件平台上运行。由于Java主要用于网络应用程序开发,因此对安全性有较高的要求。如果 没有安全保证,用户从网络下载程序执行就非常危险。Java通过自己的安全机 制防止了病毒程序的产生和下载程序对本地系统的威胁破坏。第三章总体设计系统功能模块层次图工程中包括4个类,分别为SnakeActivity (主界面)、MyTile (游戏界面)、 NextActivity (游戏结束界面)和 SysApplication 类,通过不同 Activity 之间的转换实现不同界面之间的切换。SnakeActivity和NextActivity继承了 Ac
7、tivity 类,MyTile 类继承了 View 类,SysApplication 类继承了 Application 类。SnakeActivity类是这个游戏的入口点,MyTile类进行游戏的绘画和对游 戏控制操作的处理。Coordinate, MyHandler是2个辅助类,是MyTile类中Activity+onCreaxe() : voidView的内部类。其中,Coordinate是一个点的坐标(x, y) , MyHandler将MyHandler 对象绑定某个线程并给它发送消息o如下图:onDraw0 : void+onSizeChanged 0 : void +onKeyDo
8、wn() : void2SnakeActivityonCrcate 0 : voidNextActivity-fcnshuStringii 7/SysApplication+SysApplicat ion() : void 十synchronized() : void addActivity() : void +exit : void类图运行机制任何游戏都需要有个引擎来推动游戏的运行,在贪吃蛇这个游戏中,辅助类 MyHandler继承自Handler,用来把MyHandler与当前线程进行绑定,从而可以 直接给线程发送消息并处理消息。注意一点:Handle对消息的处理都是异步。 MyHandl
9、er在Handler的基础上增加sleep()接口,用来每隔一个时间段后给当 前线程发送一个消息。hand 1 eMessage()方法在接受消息后,根据当前的游戏状 态重绘界面。update ()与sleep ()间接的相互调用就构成了一个循环。由于 sleep()是个异步函数,所以update()与sleep()之间的相互调用才没有构成死 循环。运行机制如下:活动图贪吃蛇功能流程第四章详细设计与实现SnakeActivity 类程序的入口,程序的界面。代码如下:package class SnakeActivity extends Activity Overiideprotected vo
10、id onCreate(Bundle savedlnstanceState) (savedInstanceState);setContentView().addActivity(this);MyTile 类MyTile的基类是View,包含了贪吃蛇游戏画面的各个设定参数,主要负责绘制 游戏画面。还定义了游戏运行时的画面改变及蛇体和食物的更新方法。MyTile 类定义如下:package” DrawAllocationn)public class MyTile extends View private int size = 12; rintlnC*onSizeChanged(int w, int
11、 h, int oldw, int oldh)*); xCount = (int) (w / size): etResources () ; rint 1 n (,r*loadPic (int key, Drawable drawable) *,f);Bi tmap bitmap = Bitmap.createBisize,Canvas canvas = new Canvas(bitmap):quals(newCoor) collision = true;ddActivity(this);class JiXuButtonListener implements OnClickListenerOv
12、erride public void onClick(View v) xit();SysApplication 类退出游戏时,推出整个应用程序。代码如下:packagepublic class SysApplication extends Application private List mList = new LinkedList(): private static SysAppliention instance;private SysApplication() public synchronized static Sys?pplication getlnstance() if (null
13、= instance) instance = new SysAppl icationO :return instance第五章测试功能测试经过在模拟器上的测试,本软件能实现其功能,达到了小蛇在屏幕上的移动,小蛇 吃食物,食物随机出现的功能,当小蛇头尾相撞或与墙相撞时,游戏结束.这些均 在测试中得到验证。(1)游戏时(2)结束时提示分数:1000000040退出测试结果通过对游戏软件的功能测试,控制测试和界面测试。对游戏的开始新游戏、退出 和统计分数功能进行测试,并测试程序的键盘点击事件,结论是该游戏软件能正 确实现功能要求。要求输出的效果与预期的输出效果完全一致。第六章结论这次Android课
14、程设计让我重新熟悉了 Android工程的框架及设计的步骤, 以及每个文件的作用,稍微掌握了一些View类的方法,同时也学到了更多的界 面设计的方法,比如如何自定义视图等。在学习、使用Java的过程中,进一步 在总体上让我对编程语言有了新的认识。在设计、调试、修改的过程当中,我对 程序的设计与构架在整体上有了进步。这次通过做Android课程设计,我完成了小游戏贪吃蛇的任务。在整个过程 中遇到了一些问題,如蛇头怎样移动,蛇的尾巴怎样跟着移动,还有在默认情况 下怎样让蛇自行移动、时间处理的机制和界面的设计问题,但最终部分被解决了, 还有一些自己想到的功能,已经去做了但还是出现问题,还没能做出来,如暂停 游戏、完成游戏获得分数、存档、游戏排名、蛇无效方向处理和加快蛇移动速度 等,后面有时间的话,在继续深入把没有完成的功能做出来。在这一次的课设过程中,我查阅了相关的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024医院临时工聘用合同参考范文
- 2024房屋转租合同简单版范本
- 2024钟点工劳动合同范本
- 2024绿化养护管理委托版合同
- 2024总经销合同范本范文
- 施工合同协议书样本
- 终止业务往来协议书
- 2024年软件变更协议书范文
- 商业秘密保护技术协议书
- 2023年高考地理重点难点考点通练-产业结构升级(解析版)
- 教案评分标准
- 中药饮片处方点评表
- 《节能监察的概念及其作用》
- 综合布线系统竣工验收表
- 蔬菜会员卡策划营销推广方案多篇
- 导管滑脱应急预案及处理流程
- (精选word)三对三篮球比赛记录表
- 大型火力发电厂专业词汇中英文翻译大全
- 火电厂生产岗位技术问答1000问(电力检修)
- 八年级思想读本《4.1“涉险滩”与“啃硬骨头”》教案(定稿)
- 高中语文教学课例《荷塘月色》课程思政核心素养教学设计及总结反思
评论
0/150
提交评论