当前位置:文档之家› 基于Android的贪吃蛇游戏

基于Android的贪吃蛇游戏

基于Android的贪吃蛇游戏
基于Android的贪吃蛇游戏

东北石油大学应用训练

2016年3 月11日

东北石油大学应用训练任务书

课程___________________________

题目

专业姓名学号

主要内容、基本要求、主要参考资料等

主要内容:

本无线开发应用训练利用ADT eclipse开发Android软件,主要完成贪吃蛇游戏的软件开发。其中有三大模块,分别是项目框架、游戏类图设计、界面设计。侧重于Java类的编写和视图layout的的xml编写。

基本要求:

(一)掌握Eclipse集成开发环境中Android开发的完整开发流程;

(二)掌握课题的工作原理,完成系统分析及相应的程序设计工作,包括:

(1)贪吃蛇游戏主界面程序设计;

(2)贪吃蛇游戏类图的设计;

(3)贪吃蛇Android项目框架的搭建。

(三)撰写无线开发应用训练报告。

主要参考资料:

[1] 陈炜,张晓蕾,侯燕萍等.Java软件开发技术[M].北京:人民邮电出版

社,2005.

[2] 林城. Android 2.3 应用开发实战[J].机械工业出版社,2011:17-321.

完成期限 2016年2月29日~2016年3月11日

指导教师

2016年2 月 29日

目录

一、开发背景和需求分析 (1)

二、开发环境与准备工作 (2)

三、系统功能与原型设计 (3)

四、详细设计与编程实现 (4)

4.1 项目框架 (4)

4.2 游戏类图设计 (5)

4.3 界面设计 (6)

五、系统调试和运行 (11)

总结 (11)

参考文献 (12)

附录(源程序代码) (12)

一、开发背景和需求分析

Android是基于Linux开放性内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统。早期由原名为"Android"的公司开发,谷歌在2005年收购"Android.Inc"后,继续对Android系统开发运营,它采用了软件堆层(software stack,又名软件叠层)的架构[1],主要分为三部分。底层Linux内核只提供基本功能,其他的应用软件则由各公司自行开发,部分程序以Java编写。

针对当今游戏开发的流行趋势,手机游戏的设计已成为主流,随着计算机技术及硬件技术的不断发展,用户的需求量也越来越多,并且用户追求的效果也越来越好,在此形势下好的设计方法尤为重要,基于android系统的手机游戏设计方法简单且效率较高[2]。贪吃蛇游戏也是很多人热衷的游戏,用户不仅要求其界面设计精美,更希望操作简单,程序执行速度快。

Android支持使用Java作为编程语言来开发应用程序,而Android的Java 开发方面从接口到功能,都有层出不穷的变化。考虑到Java虚拟机的效率和资源占用,谷歌重新设计了Android的Java,以便能提高效率和减少资源占用,因而与J2ME等不同[3]。操作系统与应用程序的沟通桥梁,应用分为两层:函数层(Library)和虚拟机(Virtual Machine)。Android的中间层多以Java 实现,并且采用特殊的Dalvik 虚拟机(Dalvik Virtual Machine)。Dalvik虚拟机是一种“暂存器型态”(Register Based)的Java虚拟机,变量皆存放于暂存器中,虚拟机的指令相对减少。

贪吃蛇游戏是一款老牌的手机游戏,同时也是一款比较需要耐心地游戏。贪吃蛇游戏就是一条小蛇,不停地在屏幕上游走,吃各个方向出现的食物,越吃越长。只要蛇头碰到屏幕四周,或者碰到自己的身子,小蛇就立即毙命。玩“贪吃蛇游戏”,难度最大的不是蛇长得很长的时候,而是开始的时候。那时蛇身很短,看上去难度不大,却最容易死掉,因为把玩一条小蛇让人容易走神,失去耐心。

二、开发环境与准备工作

JDK由一个标准类库和一组建立,测试及建立文档的Java实用程序组成。其核心Java WTK是Sun公司提供的无线开发工具包,分四种模拟器Defaultcolorphone 用于具有彩色显示屏幕的手机模拟器

Defaultgrayphone 用于具有单色灰度屏幕的手机模拟器

Mediacontrolskin 用于具有音频和视频控制功能的手机模拟器

Qwertydevice 用于具有标准打字键盘的手机模拟器

Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成——Eclipse Platform、JDT、CDT和PDE。

ADT是一个用来开发Android应用程序的Eclipse插件[4],本次开发也将应用的Eclipse ADT插件来完成贪吃蛇游戏的编程。

Android应用越来越广泛,开发Android游戏也渐渐成为市场的必须,本游戏的开发是基于Android4.0系统,采用eclipse编程实现[5]。

具体实现过程分为以下3步:项目框架、游戏类图设计、界面设计。

1、新建一个eclipse工程。

图1 新建eclipse工程

2、导入文件

导入相关的程序包

3、编写程序

图2 工程中的相关文件4、运行与调试,运行结果如下图。

图3 程序调试三、系统功能与原型设计

1

2、原型设计

操作系统:Android 4.0及以上版本

屏幕分辨率:≥320×480

手机型号:适用于装有Android4.0及以上版本并且屏幕分辨率≥320×480 的手机

3、系统流程

图4 系统流程

四、详细设计与编程实现

4.1 项目框架

新建一个Eclipse工程并命名为Snake,工程如下图所示:

图5 Snake工程

工程中包括4个Activity,分别为Snake(主界面)、Game(游戏界面)、Help(游戏说明界面)、AuthorView(作者信息界面),通过不同Activity之间的转换实现不同界面之间的切换。

4.2 游戏类图设计

Game(Activity)继承了SnakeView类,SnakeView类继承了TileView类。TileView类继承了View,如下图所示:

图8 类图

TiltView的基类是View,包含了贪吃蛇游戏画面的各个设定参数,主要负责绘制游戏画面。TileView类定义如下:

public class TileView extends View {

private static final String tag = "yao";

protected static int mTileSize = 20;//方格的边长

protected static int mXTileCount;//X轴上方格的个数

protected static int mYTileCount;//Y轴上方格的个数

private static int mXOffset;//绘图时X轴上的起始坐标

private static int mYOffset;//绘图时Y轴上的起始坐标

private Bitmap[] mTileArray;//位图数组

private int[][] mTileGrid;//映射整个游戏画面的数组

private final Paint mPaint = new Paint();//画笔

public TileView(Context context, AttributeSet attrs) {

super(context, attrs);

Log.i(tag, "TileView Constructor");

Log.i(tag, "mTileSize=" + mTileSize);

}

SnakeView类定义了游戏运行时的画面改变及蛇体和果子的更新方法。

定义SnakeView()函数初始化游戏,代码如下:

public SnakeView(Context context, AttributeSet attrs) {

super(context, attrs);

Log.i(tag, "SnakeView Constructor");

initSnakeView();//构造函数中,初始化游戏

}

定义initSnakeView()初始化SnakeView类,代码如下:

private void initSnakeView() {

Log.e(tag, "initSnakeView");

//设置焦点,由于存在文字界面和游戏界面的跳转。这个focus 是不可或缺的。

setFocusable(true);

//取得资源中的图片,加载到砖块字典中。

Resources r = this.getContext().getResources();

resetTiles(4);

loadTile(RED_STAR, r.getDrawable(R.drawable.redstar));

loadTile(YELLOW_STAR, r.getDrawable(R.drawable.yellowstar));

loadTile(GREEN_STAR, r.getDrawable(R.drawable.greenstar));

}

此外还定义了updateWalls()、updateApples()、updateSnake()绘制墙、果子、蛇,以及更新画面函数、保存位置坐标函数等,具体代码请详见目录。

4.3 界面设计

界面设计包括游戏主界面(Snake)、作者信息界面、游戏说明界面、游戏界面的设计。界面的设计采用的是xml文档形式,在xml文档中规划好界面布局布局后,分别在java文件中声明。

主界面设计:主界面包括一个TextView、一个imagebutton、三个button,

其main.xml文档如下:

android:layout_width="fill_parent"

android:layout_height="fill_parent" android:background="@drawable/icon">

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent" android:gravity="center">

android:visibility="visible"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/ImageButton1">

android:id="@+id/Button1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:visibility="visible">

android:id="@+id/Button5"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:visibility="visible">

android:id="@+id/Button3"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:visibility="visible">

游戏主界面如下图所示:

图6 游戏主界面

游戏界面设计:游戏界面包括一个 button,一个game.snake.SnakeView,其game.xml文档相对应的为Game.java文件。运行界面图如下所示:

图7 游戏开始界面

图8 游戏运行界面

图9 游戏结束界面

作者信息界面设计:此界面包括一个TextView、一个button,其author.xml文档相对应的为AuthorView.java文件,设计界面如图10所示。

图10 作者信息界面

游戏说明界面设计:此界面包括一个TextView、一个button,其help.xml 文档相对应的为Help.java文件。游戏说明如图11所示。

图11 游戏说明界面

至此,全部界面设计完成,但还有最重要的一步,就是将所有的Activity

注册到AndroidManifest.xml中。AndroidManifest.xml文档如下:

package="my.game.snake"

android:versionCode="1"

android:versionName="1.0">

android:label="@string/app_name">

android:name=".AuthorView">

android:name=".Game">

android:name=".Help">

另外strings.xml中定义了常量字符,至此,贪吃蛇游戏设计完毕。

五、系统调试和运行

1.要切换空间,重新设置Eclipse。

2.在自定的视图中添加一个Button按钮,通过此按钮实现返回主界面的功能,但是此时的Button按钮是显示不出来的,上网查资料很多人说自定的视图也是View,Button也是View,View和View是不能嵌套的,解决的办法是有的,可以在自定义的视图上画一个Button或者绘制某一个区域,并将此区域注册到监听器上去,如果鼠标在此区域点击则返回主界面,否则不执行。

程序调试运行效果图如下:

3. Invalid start tag LinearLayout main.xml放错文件夹,应在\res\layout下。

4. Activity not started, its current task has been brought to the front 解决方法:在Eclipse中,“project”-->“clean…”。

总结

我所做的设计功能并不算强大,但是这些结合了本学期所学习的内容,主要是界面的设计,并改写了两个类。通过自己写代码,我更进一步清楚了android工程的框架及设计的步骤,以及每个文件的作用,稍微掌握了一些View类的方法,同时也学到了更多的界面设计的方法,比如如何实现一个TextView里显示多行数据,如何自定义视图等。

通过本次的设计,我学到了很多,我会再接再厉,了解更多,充实自己。

参考文献

[1] 陈炜,张晓蕾,侯燕萍等.Java软件开发技术[M].北京:人民邮电出版

社,2005.

[2] 林城. Android 2.3 应用开发实战[J] . 机械工业出版社,2011:17-321.

[3] 张建源.Android开发技术的学习及应用[J].太原:现代工业经济及现代

化,2014(12):23-26.

[4] Ed Burnette.Hello, Android:Introducing Google's Mobile Develpment

Platform[M]. NewYork: Pragmatic Bookshelf,2013.

[5] 韩超.Android经典应用程序开发[J] . 人力资源出版社,2011:5-18.

附录(源程序代码)

TileView.java

package my.game.snake;

import android.content.Context;

import android.graphics.Bitmap;

import android.graphics.Canvas;

import android.graphics.Paint;

import android.graphics.drawable.Drawable;

import android.util.AttributeSet;

import android.util.Log;

import android.view.View;

public class TileView extends View {

private static final String tag = "yao";

protected static int mTileSize = 20;//方格的边长

protected static int mXTileCount;//X轴上方格的个数

protected static int mYTileCount;//Y轴上方格的个数

private static int mXOffset;//绘图时X轴上的起始坐标

private static int mYOffset;//绘图时Y轴上的起始坐标

private Bitmap[] mTileArray;//位图数组

private int[][] mTileGrid;//映射整个游戏画面的数组

private final Paint mPaint = new Paint();//画笔

public TileView(Context context, AttributeSet attrs) {

super(context, attrs);

Log.i(tag, "TileView Constructor");

Log.i(tag, "mTileSize=" + mTileSize);

}

//重置位图数组的长度

public void resetTiles(int tilecount) {

mTileArray = new Bitmap[tilecount];

}

@Override

//适应各种分辨率的屏幕,当改变屏幕大小尺寸时,同时修改tile的相关计数指标

protected void onSizeChanged(int w, int h, int oldw, int oldh) {

Log.i(tag, "onSizeChanged," + "w=" + w + " h=" + h + " oldw=" + oldw + " oldh=" + oldh);

mXTileCount = (int) Math.floor(w / mTileSize);

mYTileCount = (int) Math.floor(h / mTileSize);

Log.i(tag, "mXTileCount=" + mXTileCount);

Log.i(tag, "mYTileCount=" + mYTileCount);

mXOffset = ((w - (mTileSize * mXTileCount)) / 2);

mYOffset = ((h - (mTileSize * mYTileCount)) / 2);

Log.i(tag, "mXOffset=" + mXOffset);

Log.i(tag, "mYOffset=" + mYOffset);

mTileGrid = new int[mXTileCount][mYTileCount];

clearTiles();

}

//这里做了一个 Drawable 到 bitmap 的转换

public void loadTile(int key, Drawable tile) {

Bitmap bitmap = Bitmap.createBitmap(mTileSize, mTileSize, Bitmap.Config.ARGB_8888);

Canvas canvas = new Canvas(bitmap);

tile.setBounds(0, 0, mTileSize, mTileSize);

tile.draw(canvas);

mTileArray[key] = bitmap;

}

//清空图形显示

public void clearTiles() {

Log.i(tag, "TileView.clearTiles");

for (int x = 0; x < mXTileCount; x++) {

for (int y = 0; y < mYTileCount; y++) {

setTile(0, x, y);

}

}

}

//在相应的坐标位置绘制相应的砖块

public void setTile(int tileindex, int x, int y) {

mTileGrid[x][y] = tileindex;

}

// onDraw

@Override

//将直接操作的画布绘制到手机界面上

public void onDraw(Canvas canvas) {

Log.i(tag, "onDraw");

super.onDraw(canvas);

Bitmap bmp;

float left;

float top;

for (int x = 0; x < mXTileCount; x++) {

for (int y = 0; y < mYTileCount; y++) {

if (mTileGrid[x][y] > 0) {

bmp = mTileArray[mTileGrid[x][y]];

left = x * mTileSize + mXOffset;

top = y * mTileSize + mYOffset;

canvas.drawBitmap(bmp, left, top, mPaint);

}

}

}

}

}

SnakeView.java

package my.game.snake;

import java.util.ArrayList;

import java.util.Random;

import android.content.Context;

import android.content.res.Resources;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.util.AttributeSet;

import android.util.Log;

import android.view.KeyEvent;

import android.view.View;

import android.widget.TextView;

public class SnakeView extends TileView {

private static final String tag = "yao";

private int mMode = READY;

//游戏的四种状态

public static final int PAUSE = 0;

public static final int READY = 1;

public static final int RUNNING = 2;

public static final int LOSE = 3;

//蛇体运动的方向识别

private int mDirection = NORTH;

private int mNextDirection = NORTH;

private static final int NORTH = 1;

private static final int SOUTH = 2;

private static final int EAST = 3;

private static final int WEST = 4;

//游戏中仅有的三种砖块对应的数值

private static final int RED_STAR = 1;

private static final int YELLOW_STAR = 2;

private static final int GREEN_STAR = 3;

private long mScore = 0;//记录获得的分数

private long mMoveDelay = 600;//每移动一步的延时。初始时设置为600ms

private long mLastMoveTime;

private TextView mStatusTextView;//用来显示游戏状态的TextView

//两个链表,分别用来存储蛇体和果子的坐标

private ArrayList mSnakeTrail = new ArrayList();

private ArrayList mAppleList = new ArrayList();

//随机数生成器

private static final Random RNG = new Random();

//用Handler机制实现定时刷新

private RefreshHandler mRedrawHandler = new RefreshHandler();

class RefreshHandler extends Handler {

//获取消息并处理

@Override

public void handleMessage(Message msg) {

SnakeView.this.update();

SnakeView.this.invalidate();//刷新view为基类的界面

Log.i(tag, "handleMessage|Thread Name="+Thread.currentThread().getName());

}

//定时发送消息给UI线程,以此达到更新效果

public void sleep(long delayMillis) {

this.removeMessages(0); //清空消息队列,Handler进入对新消息的等待

Log.i(tag, "sleep|Thread Name="+Thread.currentThread().getName());

//定时发送新消息,激活handler

sendMessageDelayed(obtainMessage(0), delayMillis);

}

};

public SnakeView(Context context, AttributeSet attrs) {

super(context, attrs);

Log.i(tag, "SnakeView Constructor");

initSnakeView();//构造函数中,初始化游戏

}

//初始化SnakeView类,注意,这根初始化游戏是不一样的。

private void initSnakeView() {

Log.e(tag, "initSnakeView");

//设置焦点,由于存在文字界面和游戏界面的跳转。这个focus 是不可或缺的。

setFocusable(true);

//取得资源中的图片,加载到砖块字典中。

Resources r = this.getContext().getResources();

resetTiles(4);

loadTile(RED_STAR, r.getDrawable(R.drawable.redstar));

loadTile(YELLOW_STAR, r.getDrawable(R.drawable.yellowstar));

loadTile(GREEN_STAR, r.getDrawable(R.drawable.greenstar));

}

//更新游戏状态

public void setMode(int newMode) {

int oldMode = mMode;

mMode = newMode;

Resources res = getContext().getResources();

CharSequence str = "";

if (newMode == RUNNING & oldMode != RUNNING) {

mStatusTextView.setVisibility(View.INVISIBLE);

update();

Android贪吃蛇课程设计报告

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

贪吃蛇游戏安卓源代码

附录1.SnakeView类 package com.example.android_snake.view; import java.util.ArrayList; import java.util.List; import java.util.Random; import java.util.Timer; import java.util.TimerTask; import com.example.android_snake.R; import com.example.android_snake.food.Food; import com.example.android_snake.snake.Body; import com.example.android_snake.snake.Head; import com.example.android_snake.snake.Snake; import com.example.android_snake.snake.SnakeDirection; import com.example.android_snake.stone.Stone; import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Paint.Style; import android.os.Handler; import android.util.DisplayMetrics; import android.view.Display; import android.view.MotionEvent; import android.view.View; import android.view.ViewManager; import android.view.WindowManager; import android.widget.Toast; public class SnakeView extends View { private Context context; private Bitmap headBitmap; private Bitmap bodyBitmap; private Bitmap foodBitmap; private Bitmap stoneBitmap; // 屏幕的高度和宽度 private int screenHeight; private int screenWidth; // 每个小格子的高度和宽度 private int eachHeight;

知识共享-Android版贪吃蛇源码及分析(雷惊风)

Android ----snake源码分析 代码结构分析: Snake :主游戏窗口 SnakeView:游戏视图类,是实现游戏的主体类 TileView :一个处理图片或其它 Coordinate :这是一个包括两个参数,用于记录X轴和Y轴简单类,其中包括一个比较函数. RefshHandler :用于更新视图 Snake 这个类是游戏的主游戏窗口,是框架容器。 1.游戏的开始:oncreate此外的亮点是:setContentView(https://www.doczj.com/doc/e94025072.html,yout.snake_layout);设置窗口的 布局文件,这里Android123给大家说明的是,这里的snake_layout使用了自定义资源标签的方式,大家注意学习:这里我们可以看到来自SnakeView这个派生类的名称,由于Android内部的R.资源不包含SnakeView类,所以我们必须写清楚Package,比如com.exmple.android.snake.SnakeView 然后和其他控件使用一样,都是一个id然后宽度、高度、以及自定义的标签tileSize(尾巴长度),如下: 2.onPause:关于这点,大家可以参考下在我blog中关于active生命周期 https://www.doczj.com/doc/e94025072.html,/admin/blogs/379826 在玩游戏过程中,如果有来电或是其它事件中断,这时应该把当前状态保存。以便返回时,还可以继续玩游戏。这就使用onSaveInstanceState实现保存当前状态。 TileView 注:此部分解析来自: Android示例程序Snake贪食蛇代码分析(三) TileView,从名称上不难看出这是一个方砖类,就是生成一个方块。 TileView使用了Android平台的显示基类View,View类是直接从https://www.doczj.com/doc/e94025072.html,ng.Object派生出来的,是各种控件比如 TextView、EditView的基类,当然包括我们的窗口Activity类,这些在SDK文档中都说的比较清楚。

【计算机软件毕业设计】基于Android的贪吃蛇小游戏

河北农业大学 本科毕业论文 题目:贪吃蛇小游戏 1.导论 (1) 1.1 Android简介 (1) 1.1.1 Android的发展 (1) 1.1.2 Android系统的特点 (2) 1.1.3 Android的系统架构 (2) 1.2 项目简介 (3) 1.3 项目背景与意义 (3) 1.3.1 开发背景 (3) 1.3.2 开发意义 (3) 1.4 国内外现状分析 (4) 1.4.1 国内外手机系统现状 (4) 1.4.2 国内外手机应用现状 (5) 1.4.3 发展趋势 (5) 2. 系统的开发方法及相关技术 (7) 2.1 软件工程的定义 (7) 2.2 软件工程的模型 (7) 2.3 本项目的研究方法 (7) 2.3.1 本项目采用的开发模型 (8) 2.3.2 本项目的开发方法 (8) 2.4 开发工具及环境简介 (9) 2.4.1 开发工具eclipse简介 (9) 2.4.2 开发环境简介 (10) 3. 需求分析 (11) 3.1系统开发目标 (11) 3.2 系统需求分析 (11) 3.2.1 业务需求分析 (11) 3.2.2 用户需求分析 (11) 3.2.3 功能需求分析 (12) 4 概要设计 (13)

4.1 程序流程设计 (13) 4.2模块设计 (13) 4.2.1 模块划分 (13) 4.2.2 游戏主界面模块 (14) 4.2.3 游戏控制模块 (14) 4.2.4 游戏数据模块 (15) 4.3 模块实现原理 (15) 4.3.1游戏界面模块实现 (15) 4.3.2 游戏控制模块实现 (16) 4.3.3 数据存储模块实现 (17) 5.详细设计 (18) 5.1 游戏类图 (18) 5.2 游戏界面具体实现 (18) 5.2.1 蛇身、食物和墙的实现 (18) 5.2.2 处理键盘事件 (19) 5.2.3 TileView类的设计 (19) 5.2.4 SnakeView类的设计 (19) 5.2.5 Snake类的详细设计 (19) 5.2.6 程序主结构 (20) 5.3 游戏运行界面截图 (20) 结论 (22) 参考文献 (23) 致谢 (24)

基于android的贪吃蛇游戏设计与开发论文

基于Android的贪吃蛇游戏的设计与开发1. 程序构思 贪吃蛇游戏是一款非常经典的手机游戏,贪吃蛇游戏的设计比较复杂,它涉及面广、牵涉方面多,如果不好好考虑和设计,将难以成功开发出这个游戏。在这个游戏的设计中,牵涉到图形界面的显示与更新、数据的收集与更新,并且在这个游戏的开发中,还要应用类的继承机制以及一些设计模式。因此,在设计开发过程中,需要处理好各个类之间间的逻辑依赖关系和数据通信关系。 正是因为如此,本次设计的目的在于学习Java程序设计基本技术,学习用android开发Java 程序的相关技术,熟悉游戏“贪吃蛇”的需求,熟悉项目开发的完整过程。学会怎样进行一个项目的需求分析、概要设计、详细设计等软件开发过程,熟练地掌握Java程序设计的基本技术和方法,熟练地掌握android环境的使用方法,培养初步的项目分析能力和程序设计能力。 2.程序设计 游戏设计的处理流程图

2.1 游戏功能 本系统主要完成以下几方面的功能: 游戏控制功能——包括游戏的开始、暂停、退出 界面布局 其他辅助功能(如游戏帮助,游戏积分,游戏过关等) 2.2 总设计模块的划分 游戏总设计模块划分为游戏主要界面模块、游戏控制模块和游戏菜单模块。 2.3 游戏主界面模块 游戏主界面模块主要是指游戏的框图,其包括一下内容: 1、游戏界面的边界,即游戏中的墙; 2、游戏中蛇的构成,以及苹果的构成;

3、游戏中障碍物的构成; 4、游戏中分数显示以及关卡显示。 2.4 游戏控制模块 (1)游戏开始控制: 我们的程序是使用上键开始游戏,启动游戏后会有一个初始菜单界面,我们点击“开始游戏”,弹出一句话“请按上键开始游戏”。游戏开始后蛇向下移动,然后由控制上下左右键来控制蛇的移动。在程序中我们重新建了一个activity来控制游戏的开始,使游戏的开始界面更美观。 (2)游戏暂停控制: 我们是使用center键来控制游戏的暂停的,这是一项人性化的设计,当玩家在游戏过程中突遇紧急情况时可以按center键暂停游戏,等玩家空闲后按center键可以继续游戏。 (3)游戏退出控制: 在游戏的退出上我们的程序使用了多种方式来应对不同的情况,当玩家正在游戏中时,如想退出可以按“1”键,程序会自动跳转到初始菜单界面,在初始菜单界面点击“退出游戏”即可退出游戏。如果玩家在游戏中由于碰到墙或者咬到自己或者碰到障碍物而导致游戏结束的,游戏或自动弹出一个界面,里面有提示是继续游戏还是退出游戏,当点击“取消”时,游戏就会自动跳转到初始菜单,再点击“退出游戏”即可。 2.5类模块设计 src源码目录: Snake.java为主界面类; SnakeView 为贪吃蛇类的视图主要逻辑控制和绘制类; TitleView 为界面的整体视图; MenuActivity为菜单类,可以跳转到Help类和Snake类; Help为游戏帮助类。 3.程序实现 1、游戏界面的实现 1、先声明用来存放绘画图像的X,Y轴的位置的数组: private int[][] mTileGrid;

手机游戏的发展与现状

《计算机学科前沿导论》 课程作业 作业主题:手机游戏 学院:信息科学与技术学院 年级: 2015级 二〇一五年十二月 1、背景。 随着手机的发展,这种科技已经成为现如今人们生活中不可获取的东西,人们除了用它打电话、上网等日常沟通外,还用它在无聊的时候进行一些休闲娱乐游戏,安卓、塞班系统的发展更是扩展开了手机游戏市场,现如今,手机游戏市场种类繁多,看似非常有趣却也存在着风险与问题,值得我们谨慎思考手机游戏的未来。 2、手机游戏的发展。 第一时期:基于手机刚萌发时期的初级游戏 这一时期,手机的发展才是刚刚起步阶段,并没有像安卓应用市场这样的应用来扩展我们手机上的游戏,各个厂商的手机系统不同,各自打造了自己的简单游戏。 如:贪吃蛇、俄罗斯方块、打砖块等。 这些游戏的特点就是简单,大多都是黑白色就可以完成。以贪吃蛇为例:该游戏是基于编码中的数组,将一定范围内的空间设置为0,随机出现一个1,作为玩家操控的贪吃蛇则随着时间向一个方向改变自己的头尾,检测本来就为1的空格的时候,就身体长度增大一截。

第二时期:基于Java的手机游戏。 此时,虽然手机系统还没有统一,不过大都兼容了Java,可以从网上下载Java安装包,从而进行推广,这一定程度上促进了手机游戏的发展,甚至有的Java游戏已经实现了多机对战。 此时游戏大多已经进入了彩色时代。 代表游戏:象棋。 第三时期:基于Android的手机游戏。 安卓运行系统的上线使得手机游戏出现了爆发模式的增长,不如说安卓手机市场里一半的市值是有游戏构成的,智能手机的发展使得一个安卓手机对大多数游戏可以进行兼容,画面丰富,色彩鲜艳,音乐节奏感强,正是当今手游市场的主导。 甚至——安卓游戏的推出也同时吸引了IT界愈多企业投资,变成了可盈利的产品,主要的公司像腾讯和盛大,代理了许多手机游戏,他们通过销售虚拟的游戏币来获得收入,加入了许多网络对战系统,使得手机游戏市场广泛。 现在的游戏大多都是联网对战,从别的领域获取一些文化元素,进行改编,移植到安卓系统上,但也有些单机手游能深得人们讨论,如去年大火的flaapy bird。 3、手机游戏的分类。 (1)、卡牌游戏。 玩家通过收集各种卡牌进行升级战斗从而获得更高属性的卡牌,见到更多的角色,这种游戏需要的画面巨大,而且考研用户对自己的有用的卡牌和无用的卡牌进行管理,是一个考验智商的游戏。 但是,这种游戏最火爆的原因就是:为了获得有些稀有卡牌,用户需要通过抽奖系统来获得,当今抽奖系统主要分为单抽和11连,要么就要消耗人民币,要么就需要消耗大把大把的时间,像买彩票一样,没有抽中还想再抽一次,使得这种游戏逐渐成为一种信仰。 代表游戏:百万亚瑟王 (2)、音乐节奏游戏。 卡牌游戏考验智商,音乐节奏游戏考验手速,配合以剧情中需要通过的音乐为关卡,玩家需要根据节奏感敲击按键,技术难度大,越玩越能取得进步,获得成就感。 代表游戏:LoveLive (3)、弹幕游戏。 类似于早年的“雷电”,玩家需要操控无限子弹的角色躲过敌方枪林弹雨一样的攻击,称之为”弹幕“,弹幕越密越难打,同样考验玩家的操作能力,以及耐心。 代表游戏:东方project系列 (4)、文字类RPG游戏。 RPG意思是角色扮演,玩家扮演游戏中的主角,通过日常生活的对话做选择题而触发各种不同的剧情,有好的ending,也有bad ending,一切都取决于玩家自身的选择,此游戏制作需要大量的文学功底,技术难度并不大。 此外:该类游戏大多移植by PC版,大多PC版的galgame发售后都可以找到相应的安卓版。 代表游戏:Clannad、Air、悠之空、fate stay/night (5)、仿真游戏 把现实生活中存在的游戏和现象移植到虚拟的手机上的游戏。 其中现实生活中存在的游戏有:五子棋、象棋、跳棋等。 还有的是进行物理仿真。 如:台球、粘粘世界、愤怒的小鸟

Android贪吃蛇课程设计报告材料

综合实践报告 课程名称计算机系统综合实训 课题名称贪吃蛇游戏开发 专业计算机科学与技术 班级 学号 姓名

指导教师 2015年12月20日 湖南工程学院 课程设计任务书 课程名称计算机系统综合实训 课题贪吃蛇游戏开发 专业班级计算机1202 学生姓名 学号 指导老师 审批 任务书下达日期2015 年12月20 日任务完成日期2016年1月11日

任务书 一、实训的内容 1.贪吃蛇游戏开发 (1)设计内容: 在手机屏幕上设计一个贪吃蛇游戏,屏幕四周被绿色苹果包围,中间有贪吃蛇和随机产生的苹果,贪吃蛇的头是黄色的,身子是红色的。玩家按上、下、左、右键盘控制贪吃蛇在屏幕上向上、下、左、右移动,贪吃蛇只能向左、右方向90度转弯,当吃到一个苹果贪吃蛇就长一节,分数加一分,同时屏幕上又随机产生的一个黄色苹果,一旦碰到墙壁或自己的尾巴就失败。提示游戏得到的分数。 贪吃蛇游戏规则: 游戏初始化:在本游戏中,采用如下的策略进行初始化:将贪吃蛇基本初始化在屏幕的中央,初始移动方向和贪吃蛇节点的排列顺序一致,食物的坐标固定位置。 贪吃蛇的移动:除第一个节点以外,其它每个节点跟随前一个节点移动 贪吃蛇方向控制:贪吃蛇方向控制需要根据玩家的按键改变贪吃蛇的方向变量,在改变时需要注意,不能改变为当前方向的相反方向,例如当前方向是向下时,按向上的方向键是无效的。

(2) 设计要求: 按任务书的设计要求进行撰写。 其中游戏核心数据结构设计要求为:主要是界面控制信息和逻辑控制信息, 界面控制信息主要包含两个部分:贪吃蛇的位置信息,存储贪吃蛇的具体位置,另外一个就是闪烁的食物的位置。而逻辑控制信息主要包含三个部分:贪吃蛇的移动方向、闪烁控制以及程序暂停控制。 碰撞和处理,包括贪吃蛇和食物的碰撞和处理,贪吃蛇和四周的碰撞和处理,贪吃蛇的头和身的碰撞和处理, 二、综合实训时间安排 具体时间及要求安排如下: 综合实训时间为17~18周,包括上机与查资料。 17周安排(12月28日开始) 星期一(12月28日) 上午 星期二(12月29日) 下午 星期三(12月30日) 上午 星期四(12月31日) 上午 第18周 星期一至星期三上午风华科技老师来校讲课

安卓贪吃蛇课程设计报告材料

滨江学院 智能手机程序设计 题目安卓智能手机贪吃蛇游戏设计 院系滨江学院计算机系 专业信息工程 学生周盈伟 学号 指导教师高超 二0 一四年六月一日

目录 第一章绪论 (3) 1.1开发背景 (3) 1.1.1安卓系统简介 (3) 1.1.2游戏简介 (3) 1.2开发目的及意义 (4) 1.3开发环境及工具 (4) 第二章需求分析 (5) 2.1游戏界面分析 (5) 2.2游戏角色分析 (5) 2.3游戏控制分析 (5) 2.4 可行性分析 (6) 第三章总体设计 (7) 3.1系统功能模块层次图 (7) 3.2运行机制 (8) 3.3贪吃蛇功能流程图 (10) 第四章详细设计与实现 (12) 4.1 TiltView类 (12) 4.2 SnakeView类 (14) 4.3 界面设计 (16) 第五章测试 (20) 5.1游戏功能测试 (20) 5.2游戏控制测试 (20) 5.3游戏界面测试 (20) 5.4测试结果 (20) 第六章结论 (21)

第一章绪论 1.1开发背景 1.1.1安卓系统简介 安卓系统作为新兴的手机操作系统,在问世不久,变风靡全球,占领手机操作系统里很大的市场份额,与苹果,诺基亚三分天下,Android是基于Linux开放性核的操作系统,是Google公司在2007年11月5日公布的手机操作系统。早期由原名为"Android"的公司开发,谷歌在2005年收购"Android.Inc"后,继续对Android系统开发运营,它采用了软件堆层(software stack,又名软件叠层)的架构,主要分为三部分。底层Linux核只提供基本功能,其他的应用软件则由各公司自行开发,部分程序以Java编写。 1.1.2游戏简介 1976年,Gremlin平台推出了一款经典街机游戏Blockade。游戏中,两名玩家分别控制一个角色在屏幕上移动,所经之处砌起围栏。角色只能向左、右方向90度转弯,游戏目标保证让对方先撞上屏幕或围栏。听起来有点复杂?其实就是下面这个样子: 基本上就是两条每走一步都会长大的贪吃蛇比谁后完蛋,玩家要做的就是避免撞上障碍物和越来越长的身体。更多照片、视频可以看Games D Base 的介绍。 Blockade 很受欢迎,类似的游戏先后出现在Atari 2600、TRS-80、苹果 2 等早期游戏机、计算机上。但真正让这种游戏形式红遍全球的还是21年后随诺基亚手机走向世界的贪吃蛇游戏——Snake。 贪吃蛇游戏是一款老牌的手机游戏,同时也是一款比较需要耐心地游戏。贪吃蛇游戏就是一条小蛇,不停地在屏幕上游走,吃各个方向出现的食物,越吃越长。只要蛇头碰到屏幕四周,或者碰到自己的身子,小蛇就立即毙命。玩“贪吃

Bug Invasion《虫子入侵》评测:重口味塔防游戏

Bug Invasion《虫子入侵》评测:重口味塔防游戏刚看到这款游戏的图标时我就想到一个《小鸭舰队》的故事:1992年一艘从中国出发的货船在太平洋上遭遇强烈风暴,船上装满近3万只黄色塑料玩具鸭的集装箱坠入大海,其中一批玩具鸭经过白令海峡,绕过北极,漂过了“泰坦尼克号”的沉没地,最终进入北大西洋,并于2003年夏天登陆美国东海岸及加拿大海岸。它们中的有些鸭子还可能继续在海上漂流100年。在这些玩具鸭子开始其传奇旅程后,人们给它们起了一个很有气势的名字“小鸭舰队”。小鸭子“不屈不挠”的精神也被带到了这款游戏的灭虫大业之中。 作为一款塔防游戏首先当然要先让攻方和守方登场。攻方是庞大的虫群,地上爬的有蟑螂蜘蛛,天上飞的有苍蝇蜜蜂,这些虫子有赤膊上阵的也有带着家伙出来的,例如开坦克出来的。守方则是以玩具鸭为首的无厘头组合:纸杯、玩具鸭、玩具机器人,烤面包机和电动打蛋器,这五款防御塔随着游戏深入会有无厘头的升级版本,例如玩具鸭会升级成加农炮然后再升级为产蛋器,作为一个逻辑上略有洁癖的偏执狂来说,抓耳挠腮想了半天这三者有什么联系,玩具鸭升级后不应该是个双头玩具鸭吗? 攻防一共有两个属性:移动速度和生命值,带家伙的速度慢但耐打。守方也是两个属性:连发速度和杀伤力,玩具鸭只能攻击地面的虫子,玩具机器人只能攻击天上的虫子,纸杯攻击没有装备的虫子,玩具鸭攻击有装备的虫子,烤面包机只能放缓虫子的移动速度,这些设定同样适应于升级以后的防御塔。

游戏的玩法操作很简单,虫子会沿着餐桌上的路前进,路旁会有纽扣,防御塔只能建在纽扣上,合理安排防御塔位置,确保方糖不会被虫子全部消灭。游戏界面的右上角有三个数据,第一个是提醒一共有多少波虫子,第二个是提醒你方糖还剩下多少块,第三个是你这一关用来建防御塔的起始资金,在消灭了虫子之后会奖励相应的金钱来建后续的防御塔,所以在释放第一波虫子之前的布局就显得尤其重要。游戏比较有趣的是每一关到最后都会出现一只BOSS 虫,如果让BOSS 虫进了方糖盒,那就会一次性消耗十颗方糖,方糖数为零就得一切重头来过了。

基于安卓平台贪吃蛇游戏的设计开题报告

基于安卓平台贪吃蛇游戏的设计 一、选题依据 1.设计(论文)题目:基于安卓平台贪吃蛇游戏的设计 2.研究领域:通信运用 3.设计(论文)工作的理论意义和应用价值 目前随着移动设备越来越普及以及移动设备的硬件的提升,移动设备的功能越来越完善,android系统平台也日渐火热起来。目前为止国内已经有很多Android系统的用户。截止2013年Android系统的国内市场占有率已经过75%,在西欧以及北美智能手机市场占有率也在80%左右。可见Android系统正处于发展的顶峰。手机游戏作为Android系统平台的一个重要组成部分,正在被越来越多的人所重视。全球在使用的移动电话已经超过59亿部,而且这个数字每天都在不断增加。手机游戏潜在的市场比其他任何平台都要大。 二、设计研究的内容 1.重点解决的问题 (1)基于Android游戏动画的实现 (2)游戏地图的数据结构的表示 (3)游戏动画中的碰撞检测问题 2.拟开展研究的几个主要方面: 1 理论上和实践上的意义 关于Android游戏动画,基于安卓平台实现一个相对高效并且简单易用的游戏引擎,或者从其他手机平台移植相对较为成熟的游戏动画引擎。解决此问题可以为贪吃蛇游戏以及其他类似的动画游戏提供流畅的动画效果,实现游戏引擎同时也可以提高游戏动画的代码复用率,提高游戏编程的效率。 深入理解Android 系统的Dalvik虚拟机工作机制。由于Android平台使用Java语言进行开发,谷歌的工程师改写了Java ME的虚拟机。解决虚拟机垃圾回收时所造成的占用系统资源较大的问题,可以提高游戏的流畅性,提升用户的游戏体验。 解决游戏人工智能的解决方案,贪吃蛇游戏中,地图寻路问题并非如此简单,必须考虑多方面的因素。 触屏以及重力感应器等操控方式的处理问题。在Android平台中相对传统的手机系统,Android系统提供多种传感器的调用接口。探索使用手机导航球,重力感应,触屏操作等新型操控模式提高用户操作体验。 贪吃蛇游戏是一款非常经典的手机游戏,贪吃蛇游戏的设计比较复杂,它涉及面广、牵涉方面多,如果不好好考虑和设计,将难以成功开发出这个游戏。在这个游戏的设计中,牵涉到图形界面的显示与更新、数据的收集与更新,并且在这个游戏的开发中,还要应用类的继承机制以及一些设计模式。因此,在设计开发过程中,需要处理好各个类之间间的逻辑依赖关系和数据通信关系。 2 可行性论述 每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。 Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。同时虚拟机是基于寄存器的,所有的类都经由JA V A编译器编译,然后通过SDK中的“dx”工具转化成“.dex”格式由虚拟机执行。 Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机

Android贪吃蛇课程设计报告

A n d r o i d贪吃蛇课程设计 报告 Prepared on 24 November 2020

综合实践报告课程名称计算机系统综合实训 课题名称贪吃蛇游戏开发 专业计算机科学与技术 班级 学号 姓名 指导教师 2015年 12月 20日 湖南工程学院 课程设计任务书 课程名称计算机系统综合实训 课题贪吃蛇游戏开发 专业班级计算机1202 学生姓名 学号 指导老师 审批 任务书下达日期 2015 年 12月 20 日 任务完成日期 2016年 1月 11日

任务书 一、实训的内容 1.贪吃蛇游戏开发 (1)设计内容: 在手机屏幕上设计一个贪吃蛇游戏,屏幕四周被绿色苹果包围,中间有贪吃蛇和随机产生的苹果,贪吃蛇的头是黄色的,身子是红色的。玩家按上、下、左、右键盘控制贪吃蛇在屏幕上向上、下、左、右移动,贪吃蛇只能向左、右方向90度转弯,当吃到一个苹果贪吃蛇就长一节,分数加一分,同时屏幕上又随机产生的一个黄色苹果,一旦碰到墙壁或自己的尾巴就失败。提示游戏得到的分数。 贪吃蛇游戏规则: 游戏初始化:在本游戏中,采用如下的策略进行初始化:将贪吃蛇基本初始化在屏幕的中央,初始移动方向和贪吃蛇节点的排列顺序一致,食物的坐标固定位置。 贪吃蛇的移动:除第一个节点以外,其它每个节点跟随前一个节点移动 贪吃蛇方向控制:贪吃蛇方向控制需要根据玩家的按键改变贪吃蛇的方向变量,在改变时需要注意,不能改变为当前方向的相反方向,例如当前方向是向下时,按向上的方向键是无效的。 (2) 设计要求: 按任务书的设计要求进行撰写。 其中游戏核心数据结构设计要求为:主要是界面控制信息和逻辑控制信息, 界面控制信息主要包含两个部分:贪吃蛇的位置信息,存储贪吃蛇的具体位置,另外一个就是闪烁的食物的位置。而逻辑控制信息主要包含三个部分:贪吃蛇的移动方向、闪烁控制以及程序暂停控制。 碰撞和处理,包括贪吃蛇和食物的碰撞和处理,贪吃蛇和四周的碰撞和处理,贪吃蛇的头和身的碰撞和处理, 二、综合实训时间安排 具体时间及要求安排如下: 综合实训时间为17~18周,包括上机与查资料。 17周安排(12月28日开始)

贪食蛇游戏的Android嵌入式系统设计

贪食蛇游戏的Android嵌入式系统设计 目前,随着电子技术和信息技术的快速发展,越来越多的人们对嵌入式设备的功能有了更高要求。特别是以智能手机为代表的移动设备发展为现有的嵌入式结构形体,那么,现在以手机为游戏设备的嵌入式系统应用产品有了非常广泛的用户群体。它能够益智、增加生活的趣味性、培养团队精神、虚拟现实等好处。然而对于嵌入式系统的手机,其操作系统则更能体现其功能和性能的不同。 为了满足人们日常娱乐生活的需要,在汉斯出版社《软件工程与应用》期刊中,有论文提出了贪食蛇游戏的Android嵌入式系统设计,旨在说明嵌入式系统游戏的技术实现过程。随着移动终端和通信技术不断地进步,嵌入式手机游戏系统也变得越来越成熟,它在全世界都被认为是带动移动业务高速发展的重要力量。同时,智能手机的出现,手机游戏业务也呈现指数形式增长。 贪食蛇大作战的前身是贪吃蛇,是上个世纪70年代诞生的很经典的游戏,后来到了90年代,诺基亚开发了一款贪吃蛇,并命名为“Snake”,一般认为,“Snake”是世界上的第一款手机游戏。游戏规则相信大家都很熟悉了,在这里主要说一说贪食蛇大作战规则,它是玩法玩家在屏幕上通过吃虫子等击败其它的蛇,然后吃它的尸体来获得成长和分数,同时也要防止自己撞倒障碍物。 该游戏选用Android系统的运行平台,采用Java语言和面向对象思想开发的一款单机游戏,大体上可以分为两大结构模块:程序控制界面、游戏逻辑模块。程序控制模块主要功能时实现用户和界面的交互,使各个Activity之间跳转,比如用户点击屏幕上的“开始游戏”按钮,进入游戏界面,最后当玩家死亡时,显示游戏结束,又回到主页面,程序控制也是数据传输的关键部分。游戏逻辑模块又分为人机交互控制、人工智能和游戏绘图引擎。 基于Android系统的游戏软件已经成为了手机的一个基本配置,本文给出了

基于Android的贪吃蛇游戏

东北石油大学应用训练 2016年3 月11日

东北石油大学应用训练任务书 课程___________________________题目专业姓名学号 主要内容、基本要求、主要参考资料等 主要内容: 本无线开发应用训练利用ADT eclipse开发Android软件,主要完成贪吃蛇游戏的软件开发。其中有三大模块,分别是项目框架、游戏类图设计、界面设计。侧重于Java类的编写和视图layout的的xml编写。 基本要求: (一)掌握Eclipse集成开发环境中Android开发的完整开发流程; (二)掌握课题的工作原理,完成系统分析及相应的程序设计工作,包括: (1)贪吃蛇游戏主界面程序设计; (2)贪吃蛇游戏类图的设计; (3)贪吃蛇Android项目框架的搭建。 (三)撰写无线开发应用训练报告。 主要参考资料: [1] 陈炜,张晓蕾,侯燕萍等.Java软件开发技术[M].北京:人民邮电出版社, 2005. [2] 林城. Android 应用开发实战[J].机械工业出版社,2011:17-321.

完成期限 2016年2月29日~2016年3月11日指导教师 2016年2 月 29日

目录 一、开发背景和需求分析............................................................ 错误!未定义书签。 二、开发环境与准备工作............................................................ 错误!未定义书签。 三、系统功能与原型设计............................................................ 错误!未定义书签。 四、详细设计与编程实现............................................................ 错误!未定义书签。 项目框架.............................................................................. 错误!未定义书签。 游戏类图设计...................................................................... 错误!未定义书签。 界面设计.............................................................................. 错误!未定义书签。 五、系统调试和运行.................................................................... 错误!未定义书签。总结................................................................................................ 错误!未定义书签。参考文献........................................................................................ 错误!未定义书签。附录(源程序代码).................................................................... 错误!未定义书签。

android游戏开发入门: 贪吃蛇 源代码分析

android游戏开发入门:贪吃蛇源代码分析 贪吃蛇是一款足够经典的游戏。它的经典,在于用户操作的简单,在于技术实现的简介,在于他的经久不衰。这里的贪吃蛇的android实现,是SDK Samples中的开源例程。可能各位都有看过~界面如下图啦~ 作为一个刚入门或者还没入门的新手,着实花了我一些力气来理解这段代码。对于各种不懂的地方,慢慢查询资料,对于新的方法,通过修改代码尝试效果。到现在终于能算个一知半解。在代码中,对于自己有所收获的地方,我都做了相应的注释。回过头来,觉得从这段代码中,能学到不少东西~~包括android应用的基本架构,他的面向对象的思想,以及代码的简洁明了。于是,我想到,何不将这些东西分享出来,如果碰巧对感兴趣的朋友们有搜帮助,那就更好了~好了,闲话不说~代码和注释如下(处于对源码的敬意,原本 的英文注释部分都没有删去~大家可以配合理解):PS:最近我正在写自己的“贪吃蛇”,说事贪吃蛇,其实完全颠覆了这 个经典版本的设计理念和操作方式。具体细节先卖一个关子,作品准备参加这次第二届大学生android应用开发大赛。应该一个月内能完成,到时候也会开源出代码来~欢迎大家讨 论指 正·~*************************************************************

****************************************************************** *****Snake工程中,总共有三个文件:*TileView是基于Android的View类实现的方块图类,用来支撑上层类的调用,绘制方块图的显示界面。通过这些代码,能打之了解如何扩展View,实现特色的界面效果。*SnakeView调用了TileView,实现了游戏逻辑和具体的显示。*Snake为主Activity类。建议大家按照上面的顺序看三个文件,可能逻辑上更舒服一点~~下面贴上代码和注释。PS: 调试版本为android2.2。其他版本应该也没问题吧,不过得用虚拟机。因为它是上下左右按键操作,现在大多数android机是没有方向键的吧。TileView.javapackage com.example.android.snake;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Paint;import android.graphics.drawable.Drawable;import android.util.AttributeSet;import android.view.View;/** * TileView: a View-variant designed for handling arrays of 'icons' or other * drawables. * */public class TileView extends View { /** * Parameters controlling the

基于Android平台的手机游戏开发【开题报告】

毕业设计开题报告 计算机科学与技术 基于Android平台的手机游戏开发 一、选题的背景、意义 手机游戏是相对于传统计算机游戏而提出。通俗来说,手机游戏就是在手机上进行游戏应用。 最早手机游戏是1997年Nokia 推出手机内置游戏贪吃蛇(Snake)。随着手机终端和移动通信网络不断发展,手机游戏也正在经历由简单到复杂进化过程。 2003年9月,随着移动百宝箱正式收费,国内手机游戏产业正式启动,用户增长十分迅速。短短几个月时间里,手机游戏用户就增长到200万。此后时间里,手机游戏用户规模一路高歌猛进,在2005年时即突破1500万。 近年来,因特网在国内迅速普及,导致了网络游戏的高速发展。同样手机的普及,导致了手机游戏市场呈现爆炸式的发展。尤其是国内外巨大的手机拥有量,更是让商家看到了商机,手机游戏市场利润将会十分丰厚。面对潜力如此巨大的手机游戏市场,各游戏开发商,运营商,服务商以及手机终端厂商等都纷纷开始了各自的应战准备,以便抢占商机。 诺基亚,索爱,摩托罗拉等各大手机厂商开始不断的提升手机在游戏方面的性能,同时还在手机操作系统方面采用开放式的平台,方便用户享受不同的手机游戏业务。而国内游戏开发商,如盛大,网易等公司,纷纷跻身手机游戏开发商行列.新浪,搜狐等著名的门户网站,也纷纷涉足手机游戏领域,相继开辟了各自的手机游戏频道和栏目,其他一些游戏网站也都全面加快了手机游戏开发的步伐。目前Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统Android在智能手机领域这块虽然不是做的最早的,但是现在确实做的最好的,市场满意度和市场份额也是整个智能机市场里较大的一个。 据了解,最早进入Android市场的台湾宏达电陆续在一年内推出了G1、Magic、Hero、Tattoo等手机,三星也在近期推出Galaxyi7500,摩托罗拉在早前推出新款Android手机Droid,中国移动也以Android 为基础开发了OPhone平台。这些都证明Android已经成为了智能手机市场的重要发展趋势。

Android贪吃蛇课程设计报告

Android贪吃蛇课程设计报告

综合实践报告 课程名称计算机系统综合实训 课题名称贪吃蛇游戏开发 专业计算机科学与技术 班级 学号 姓名 指导教师 2015年12月20日

湖南工程学院 课程设计任务书 课程名称计算机系统综合实训 课题贪吃蛇游戏开发 专业班级计算机1202 学生姓名 学号 指导老师 审批 任务书下达日期2015 年12月20 日任务完成日期2016年1月11日

任务书 一、实训的内容 (1)设计内容: 在屏幕上设计一个贪吃蛇游戏,屏幕四周被绿色苹果包围,中间有贪吃蛇和随机产生的苹果,贪吃蛇的头是黄色的,身子是红色的。玩家按上、下、左、右键盘控制贪吃蛇在屏幕上向上、下、左、右移动,贪吃蛇只能向左、右方向90度转弯,当吃到一个苹果贪吃蛇就长一节,分数加一分,同时屏幕上又随机产生的一个黄色苹果,一旦碰到墙壁或自己的尾巴就失败。提示游戏得到的分数。 贪吃蛇游戏规则: 游戏初始化:在本游戏中,采用如下的策略进行初始化:将贪吃蛇基本初始化在屏幕的中央,初始移动方向和贪吃蛇节点的排列顺序一致,食物的坐标固定位置。 贪吃蛇的移动:除第一个节点以外,其它每个节点跟随前一个节点移动 贪吃蛇方向控制:贪吃蛇方向控制需要根据玩家的按键改变贪吃蛇的方向变量,在改变时需要注意,不能改变为当前方向的相反方向,例如当前方向是向下时,按向上的方向键是无效的。

(2) 设计要求: 按任务书的设计要求进行撰写。 其中游戏核心数据结构设计要求为:主要是界面控制信息和逻辑控制信息, 界面控制信息主要包含两个部分:贪吃蛇的位置信息,存储贪吃蛇的具体位置,另外一个就是闪烁的食物的位置。而逻辑控制信息主要包含三个部分:贪吃蛇的移动方向、闪烁控制以及程序暂停控制。 碰撞和处理,包括贪吃蛇和食物的碰撞和处理,贪吃蛇和四周的碰撞和处理,贪吃蛇的头和身的碰撞和处理, 二、综合实训时间安排 具体时间及要求安排如下: 综合实训时间为17~18周,包括上机与查资料。 17周安排(12月28日开始) 星期一(12月28日) 上午 星期二(12月29日) 下午 星期三(12月30日) 上午 星期四(12月31日) 上午 第18周 星期一至星期三上午风华科技老师来校讲课 星期三下午去九华参观 星期四至星期五,卓京来校讲课 三、综合实训报告撰写要求 正文的内容: 1、课程实训目的及要求; 2、设计思路(需求分析、功能介绍、模块划分); 3、主要功能的实现(至少要有一个主要模块的流程图); 4、程序调试; 5、总结; 6、附件(所有程序的源代码,要求对程序写出必要的注释)。正文总字数要求在5000字以上(不含程序原代码) 附:课程实训报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。

相关主题
文本预览
相关文档 最新文档