吴雨豪2014年035470贪吃蛇课程设计报告

上传人:ali****an 文档编号:121523800 上传时间:2020-02-23 格式:DOC 页数:26 大小:878.64KB
返回 下载 相关 举报
吴雨豪2014年035470贪吃蛇课程设计报告_第1页
第1页 / 共26页
吴雨豪2014年035470贪吃蛇课程设计报告_第2页
第2页 / 共26页
吴雨豪2014年035470贪吃蛇课程设计报告_第3页
第3页 / 共26页
吴雨豪2014年035470贪吃蛇课程设计报告_第4页
第4页 / 共26页
吴雨豪2014年035470贪吃蛇课程设计报告_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《吴雨豪2014年035470贪吃蛇课程设计报告》由会员分享,可在线阅读,更多相关《吴雨豪2014年035470贪吃蛇课程设计报告(26页珍藏版)》请在金锄头文库上搜索。

1、四川城市职业学院汽车与信息工程系Android程序设计课程设计报告题 目: 贪吃蛇 专 业: 软件技术 班 级: 1班 学 号: 2014035470 姓 名: 吴雨豪 2016年6月目录第一章 绪论21.1游戏简介21.2开发目的及意义31.3开发环境及工具3第二章 需求分析42.1游戏界面分析42.2游戏角色分析42.3游戏控制分析4第三章 总体设计53.1系统功能模块层次图53.2运行机制63.3贪吃蛇功能流程图7第四章 详细设计与实现94.1 SnakeActivity类94.2 MyTile类104.3 NextActivity类184.4 SysApplication类194.5界

2、面设计20第五章 测试265.1功能测试265.4测试结果27第六章 结论27第一章 绪论1.1游戏简介贪吃蛇游戏是一款手机游戏,同时也是一款比较需要耐心的游戏。贪吃蛇游戏是一条蛇,不停地在手机屏幕上游走,吃在手机屏幕上出现的食物。当蛇吃掉1个食物后会变长,并且吃完食物时食物会消失,并立即随机生成1个新的食物,只要蛇头碰到屏幕四周或者碰到自己的身子,蛇就立即毙命。1.2开发目的及意义通过本次课程设计,了解android软件的开发过程,熟悉并掌握JAVA语言, 程序关键在于表示蛇的图形及蛇的移动。用一个小矩形块表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用一节表示。移动时必须从蛇头开始,

3、所以蛇不能向相反的方向移动,如果不按任意键,蛇自行在当前方向上前移,但按下有效方向键后,蛇头朝着该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置,而后蛇的身体随蛇头移动。意义是方便人们在休闲时通过玩手机游戏获得一点快乐,同时锻炼自己的大脑。1.3开发环境及工具在Window8下进行,采用eclipse开发工具,基于安卓2.2操作系统。环境搭建:1. JDK安装2. Eclipse安装3. Android SDK安装4. ADT安装创建AVD第二章 需求分析2.1游戏界面分析操作界面应该人性化设计,提示玩家按什么按键开始游戏,开始游戏之后,在游戏界面中,以坐标的形式对整体界面

4、进行划分,将界面划分为网格,还应设计蛇的样式,食物的样式和墙的样式,在蛇吃到食物后的样式,还有游戏结束时的界面显示,游戏结束后,要显示所得的分数。2.2游戏角色分析设置游戏贪吃蛇初始时由固定小矩形块组成,在游戏中,要随机出现由单个矩形块构成的食物,并且设置随机出现的食物不要出现在蛇的身体中,在蛇吃到食物的时候,蛇的身体加长。此外,要判定游戏成功与失败的条件,当蛇的头和尾相撞或者蛇的头部撞到了墙上,则游戏失败,此时游戏结束,界面显示所得分数。另外蛇的移动原理,由外部按键设置监听控制蛇头的移动方向,在方向的指引下进行移动,蛇及食物的位置都是由坐标数组确定的,食物的位置也是随机产生的蛇的移动原理是后

5、一矩形块覆盖前一个矩形块。当一个食物被吃掉的时候,要自动随机生成并显示下一个食物的位置。这些都是在设计过程中需要实现的。2.3游戏控制分析游戏中需要通过按键对蛇的移动方位进行控制,共需要设置四个方位,分别是“东”“西”“南”“北”,在按键上用“上”“下”“左”“右”,按键与执行部分涉及到监听,通过监听指示蛇的运动,此外,要设置蛇移动是的默认方向为“右”,蛇的移动只能是90度偏转,不能进行180度偏转。此外还要设置游戏的状态,有运行和结束两种状态,蛇体变长的时候用静态变量进行加分。2.4 可行性分析 贪吃蛇游戏是一种简单的大众的游戏,自从进入现代化以来,深受广大电脑和手机玩家的喜爱,所以做一个简

6、单的贪吃蛇小游戏是有用的。本次设计我主要运用Java语言来完成。Java语言是一种跨平台,适合于分布式计算环境的面向对象编程语言,用Java写的应用程序不用修改就可在不同的软硬件平台上运行。由于Java主要用于网络应用程序开发,因此对安全性有较高的要求。如果没有安全保证,用户从网络下载程序执行就非常危险。Java通过自己的安全机制防止了病毒程序的产生和下载程序对本地系统的威胁破坏。第三章 总体设计3.1系统功能模块层次图工程中包括4个类,分别为SnakeActivity(主界面)、MyTile(游戏界面)、NextActivity(游戏结束界面)和SysApplication类,通过不同Act

7、ivity之间的转换实现不同界面之间的切换。SnakeActivity和NextActivity继承了Activity类,MyTile类继承了View类,SysApplication类继承了Application类。 SnakeActivity类是这个游戏的入口点, MyTile类进行游戏的绘画和对游戏控制操作的处理。 Coordinate, MyHandler是 2个辅助类,是MyTile类中的内部类。其中, Coordinate是一个点的坐标( x,y), MyHandler将 MyHandler对象绑定某个线程并给它发送消息。如下图:类图3.2运行机制任何游戏都需要有个引擎来推动游戏的运

8、行,在贪吃蛇这个游戏中,辅助类 MyHandler继承自 Handler,用来把 MyHandler与当前线程进行绑定,从而可以直接给线程发送消息并处理消息。注意一点: Handle对消息的处理都是异步。 MyHandler在 Handler的基础上增加 sleep()接口,用来每隔一个时间段后给当前线程发送一个消息。handleMessage()方法在接受消息后,根据当前的游戏状态重绘界面。update()与 sleep()间接的相互调用就构成了一个循环。由于 sleep()是个异步函数,所以 update()与 sleep()之间的相互调用才没有构成死循环。运行机制如下: 活动图3.3贪吃

9、蛇功能流程图 开始始初化蛇和食物屏幕显示蛇和食物位置蛇开始移动,后坐标覆盖前坐标是否有按键否根据上次方向更新坐标是根据按键不同在原坐标基础上改变蛇的坐标位置更新方向是否吃到食物是蛇身加1否是否越界或撞到蛇身是游戏结束否第4章 详细设计与实现4.1 SnakeActivity类程序的入口,程序的界面。代码如下:package com.daYu.mysnake;import android.app.Activity;import android.os.Bundle;public class SnakeActivity extends Activity Overrideprotected void

10、onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.activity_snake);SysApplication.getInstance().addActivity(this);4.2 MyTile类MyTile的基类是View,包含了贪吃蛇游戏画面的各个设定参数,主要负责绘制游戏画面。还定义了游戏运行时的画面改变及蛇体和食物的更新方法。MyTile类定义如下:package com.daYu.mysnake;import java.util.ArrayLi

11、st;import java.util.Random;import android.annotation.SuppressLint;import android.content.Context;import android.content.Intent;import android.content.res.Resources;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Paint;import android.graphics.drawable.Drawable;im

12、port android.os.Handler;import android.os.Message;import android.util.AttributeSet;import android.view.KeyEvent;import android.view.View;SuppressLint(DrawAllocation)public class MyTile extends View private int size = 12; / 图片大小private int xCount; / 横向格子private int yCount; / 纵向格子private int xOffset;

13、/ 原点坐标private int yOffset; / 原点坐标private int map; / 地图数组private Bitmap pics; / 图片数组private static final int GERRN_STAR = 1; / 绿色图片private static final int RED_STAR = 2; / 红色图片private static final int YELLOW_STAR = 3; / 黄色图片public static final int UP = 1; / 键盘上public static final int RIGHT = 2; / 键盘右

14、public static final int DOWN = 3; / 键盘下public static final int LEFT = 4; / 键盘左public int direction; / 方向private static final Random RANDOM = new Random();/ 随机变量private ArrayList snakeList = new ArrayList();/ 蛇身数组private ArrayList appleList = new ArrayList();/ 苹果数组private MyHandler handler = new MyHandler();/ 线程/private TextView snakeView;private Context myTileContext;private int isContinue=0;/停止游戏public static long score=0;/游戏分数/ 1 从布局文件读取图片publ

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号