Android贪吃蛇课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
XXXX学院
计算机科学系
《Android程序设计》课程设计报告
题目:贪吃蛇
专业:计算机科学与技术
!
班级: B11计科班
学号: 0
姓名:凌波微步
Q Q :25
指导教师:
,
2014年6月
,
目录
第一章绪论 (2)
游戏简介 (2)
开发目的及意义 (3)
开发环境及工具 (3)
第二章需求分析 (4)
游戏界面分析 (4)
游戏角色分析 (4)
—
游戏控制分析 (4)
第三章总体设计 (5)
系统功能模块层次图 (5)
运行机制 (6)
贪吃蛇功能流程图 (7)
第四章详细设计与实现 (9)
SnakeActivity类 (9)
MyTile类 (10)
:
NextActivity类 (18)
SysApplication类 (19)
界面设计 (20)
第五章测试 (26)
功能测试 (26)
测试结果 (27)
第六章结论 (27)
第一章绪论
@
游戏简介
贪吃蛇游戏是一款手机游戏,同时也是一款比较需要耐心的游戏。贪吃蛇游戏是一条蛇,不停地在手机屏幕上游走,吃在手机屏幕上出现的食物。当蛇吃掉1个食物后会变长,并且吃完食物时食物会消失,并立即随机生成1个新的食物,只要蛇头碰到屏幕四周或者碰到自己的身子,蛇就立即毙命。
开发目的及意义
通过本次课程设计,了解android软件的开发过程,熟悉并掌握JAVA语言,程序关键在于表示蛇的图形及蛇的移动。用一个小矩形块表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用一节表示。移动时必须从蛇头开始,所以蛇不能向相反的方向移动,如果不按任意键,蛇自行在当前方向上前移,但按下有效方向键后,蛇头朝着该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置,而后蛇的身体随蛇头移动。意义是方便人们在休闲时通过玩手机游戏获得一点快乐,同时锻炼自己的大脑。
开发环境及工具
在Window8下进行,采用eclipse开发工具,基于安卓操作系统。
环境搭建:
1. JDK安装
[
2. Eclipse安装
3. Android SDK安装
4. ADT安装创建AVD
-
第二章需求分析
游戏界面分析
操作界面应该人性化设计,提示玩家按什么按键开始游戏,开始游戏之后,在游戏界面中,以坐标的形式对整体界面进行划分,将界面划分为网格,还应设计蛇的样式,食物的样式和墙的样式,在蛇吃到食物后的样式,还有游戏结束时的界面显示,游戏结束后,要显示所得的分数。
游戏角色分析
设置游戏贪吃蛇初始时由固定小矩形块组成,在游戏中,要随机出现由单个矩形块构成的食物,并且设置随机出现的食物不要出现在蛇的身体中,在蛇吃到食物的时候,蛇的身体加长。此外,要判定游戏成功与失败的条件,当蛇的头和尾相撞或者蛇的头部撞到了墙上,则游戏失败,此时游戏结束,界面显示所得分数。另外蛇的移动原理,由外部按键设置监听控制蛇头的移动方向,在方向的指引下进行移动,蛇及食物的位置都是由坐标数组确定的,食物的位置也是随机产生的蛇的移动原理是后一矩形块覆盖前一个矩形块。当一个食物被吃掉的时候,要自动随机生成并显示下一个食物的位置。这些都是在设计过程中需要实现的。
游戏控制分析
—
游戏中需要通过按键对蛇的移动方位进行控制,共需要设置四个方位,分别是“东”“西”“南”“北”,在按键上用“上”“下”“左”“右”,按键与执行部分涉及到监听,通过监听指示蛇的运动,此外,要设置蛇移动是的默认方向为“右”,蛇的移动只能是90度偏转,不能进行180度偏转。此外还要设置游戏的状态,有运行和结束两种状态,蛇体变长的时候用静态变量进行加分。
可行性分析
贪吃蛇游戏是一种简单的大众的游戏,自从进入现代化以来,深受广大电脑和手机玩家的喜爱,所以做一个简单的贪吃蛇小游戏是有用的。
本次设计我主要运用Java语言来完成。Java语言是一种跨平台,适合于分布式计算环境的面向对象编程语言,用Java写的应用程序不用修改就可在不同的软硬件平台上运行。
由于Java主要用于网络应用程序开发,因此对安全性有较高的要求。如果没有安全保证,用户从网络下载程序执行就非常危险。Java通过自己的安全机制防止了病毒程序的产生和下载程序对本地系统的威胁破坏。
第三章总体设计
系统功能模块层次图
@
工程中包括4个类,分别为SnakeActivity(主界面)、MyTile(游戏界面)、•NextActivity(游戏结束界面)和SysApplication类,通过不同Activity 之间的转换实现不同界面之间的切换。SnakeActivity和NextActivity继承了Activity类,MyTile类继承了View类,SysApplication类继承了Application 类。 SnakeActivity类是这个游戏的入口点, MyTile类进行游戏的绘画和对游戏控制操作的处理。 Coordinate, MyHandler是 2个辅助类,是MyTile类中
的内部类。其中, Coordinate是一个点的坐标( x,y), MyHandler将 MyHandler 对象绑定某个线程并给它发送消息。如下图:
类图
运行机制
任何游戏都需要有个引擎来推动游戏的运行,在贪吃蛇这个游戏中,辅助类MyHandler继承自 Handler,用来把 MyHandler与当前线程进行绑定,从而可以直接给线程发送消息并处理消息。注意一点: Handle对消息的处理都是异步。MyHandler在 Handler的基础上增加 sleep()接口,用来每隔一个时间段后给当前线程发送一个消息。handleMessage()方法在接受消息后,根据当前的游戏状态重绘界面。update()与 sleep()间接的相互调用就构成了一个循环。由于sleep()是个异步函数,所以 update()与 sleep()之间的相互调用才没有构成死循环。