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

合集下载

手机贪吃蛇游戏的开发

手机贪吃蛇游戏的开发

手机贪吃蛇游戏的开发随着手机和智能设备的普及和智能化,手机游戏成为了人们休闲娱乐的主要方式之一。

而贪吃蛇游戏作为最受欢迎的游戏之一,在手机游戏市场占有着不可忽视的地位。

那么,如何开发一款优秀的手机贪吃蛇游戏呢?本文将从游戏规则制定、界面设计、操作体验和游戏定位等方面进行探讨。

一、游戏规则制定贪吃蛇游戏最基本的游戏规则是让玩家控制一只蛇,不断地吃食物,随着食物数量的增加,蛇的身体不断变长,同时要避免碰到墙壁或撞到自己的身体,直到游戏结束。

但仅有这样的规则显然不能吸引人们的注意力,需要通过创新和改良来增加游戏性。

首先,可以增加不同种类的食物,有些食物可增加蛇的生命值,有些食物可加速蛇的移动等等。

其次,可以增加障碍物,增加游戏难度;也可以增加减速、加速、反向等陷阱,使游戏更加有趣。

最后,还可以增加多个游戏模式,玩家可以根据自己的喜好进行选择,如单人模式、多人模式、竞技模式等,从而增加游戏的乐趣和可玩性。

二、界面设计游戏界面的设计对于游戏的成功非常重要。

对于手机贪吃蛇游戏,简洁明了、清晰易懂的界面设计能够给玩家带来更好的游戏体验。

首先,游戏界面需要有明显、醒目的游戏标题和LOGO,让人一眼就能识别出游戏的品牌和主题。

其次,需要有良好的色彩搭配和图形元素,使界面不仅美观、大方,还需要具有很好的可读性和视觉冲击。

最后,游戏界面需要简洁,不要过于繁琐,保证玩家可以轻松地找到自己所需要的功能,不断地提升游戏速度和响应速度,让游戏过程更加顺畅。

三、操作体验本质上,贪吃蛇游戏的操作方法就是控制蛇的移动。

在手机贪吃蛇游戏中,如何提供更好的操作体验至关重要。

为了方便操作,需要对游戏进行响应式设计,即玩家在触碰屏幕时,游戏应该迅速给出反馈,提高游戏的感觉与还原度。

此外,还要考虑到不同尺寸屏幕的设备,支持多种操作模式,如摇杆、虚拟按键等,从而满足不同设备和不同游戏玩家的需求,增强用户体验。

四、游戏定位市面上已有很多类似的贪吃蛇游戏,作为开发者,如果想成功推出一款手机贪吃蛇游戏,需要根据不同的用户群体进行定位。

Android休闲类游戏贪吃蛇的设计与实现终稿

Android休闲类游戏贪吃蛇的设计与实现终稿

○A基础理论●B应用研究○C调查报告○D其他本科生毕业论文(设计)Android休闲类游戏贪食蛇的设计与实现二级学院:信息科学与技术学院专业:计算机科学与技术年级:xxxx级学号:xxxxxxxxxx作者姓名:xxx指导教师:高xx完成日期:20xx年5月20日Android休闲类游戏贪食蛇的设计与实现专业名称:计算机科学与技术作者姓名:xxx指导教师:高xx论文答辩小组组长:杨x成员:高xx张x论文成绩:xx目录第一章绪论 (2)1.1 课题研究背景 (2)1.1.1 手机游戏的发展 (2)1.1.2 Android手机游戏平台 (2)1.2 国内研究状况 (3)第二章 Android 相关技术介绍 (3)2.1 Android 操作系统简介 (3)2.2 系统架构 (4)2.3 Android手机平台的优势 (5)2.4 Android开发环境搭建 (6)2.4.1 Win7系统Android开发平台的搭建过程 (6)第三章游戏设计思想及相关技术 (8)3.1 可行性分析 (8)3.1.1 社会可行性 (8)3.1.2 技术可行性 (8)3.1.3 经济可行性 (8)3.2 游戏策划 (8)3.2.1 游戏定位 (8)3.2.2 游戏背景 (8)3.2.3 设计游戏内容 (9)3.2.4 游戏设计效果图 (10)3.2 游戏框架 (13)3.2.1 游戏的总体框架 (13)3.2.2 游戏总体类图 (13)3.2.3 程序运行步骤 (14)第四章游戏各模块设计与实现 (15)4.1 游戏流程图 (15)4.1游戏常量设计 (15)4.2界面设计 (17)4.2.1游戏主页(MainActivitys) (17)4.2.2 设置页面(SettingActivitys) (20)4.2.3 游戏页面(StarGameActivitys) (29)4.2.3主游戏画面实现(GameSurfaceView) (32)4.2.4食物随机出现 (32)4.2.5控制事件触发 (32)4.2.6得分设置 (35)4.2.7音乐设置 (35)4.2.8小蛇运动和吃食物的碰撞 (37)第五章游戏测试与运行 (40)5.1 游戏测试计划 (40)5.2 游戏测试 (40)5.2.1 游戏运行结果 (41)第六章结论 (45)参考文献 (46)致谢Android休闲类游戏贪吃蛇的设计与实现作者:赵雪韵指导老师:高国宏(湛江师范学院信息学院,湛江 524048)摘要:随着Android系统的谷歌手机产品逐渐占据市场,大多数买智能手机的原因,我想并不是因为android手机用起来非常方便,而因为Android手机上的游戏能消耗时间。

基于Android贪吃蛇游戏的设计与实现

基于Android贪吃蛇游戏的设计与实现

Science &Technology Vision科技视界0引言Android 是Google 开发的基于Linux 平台的开源手机操作系统,它包括操作系统、用户界面和应用程序。

手机游戏作为Android 系统平台的一个重要组成部分,正在被越来越多的人所重视。

贪吃蛇游戏由传统街机游戏Blockade 的基础上发展而来,能增强人的反应能力,是一款适用于各个年龄阶段的娱乐性的游戏。

本文基于Android 开发环境,采用Java 语言编程,设计了一个android 的手机应用软件贪吃蛇游戏。

1Android 开发环境Android 开发环境搭建包括JDK、Eclipse、Android SDK、ADT 的安装以及AVD 的创建,步骤如下:(1)JDK 安装,安装完成之后,可以在检查JDK 是否安装成功。

(2)Eclipse 安装。

(3)Android SDK 安装,检查SDK 是否安装成功。

(4)ADT 安装。

(5)创建AVD,为使Android 应用程序可以在模拟器上运行,必须创建AVD,创建AVD 完毕后,检查测试环境是否搭建成功。

2贪吃蛇游戏总体设计2.1功能需求贪吃蛇是一款经典的手机游戏,一条蛇在封闭围墙里,通过按键盘上下左右四个键控制蛇向上下左右四个方向移动,如果蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记1分;若吃到奖励苹果,加两分;若吃到毒苹果,则减3分。

在游戏过程中,如果长按住方向键不放,则蛇的移动速度加快,松开方向键,恢复原速。

如果蛇在移动中撞到墙或障碍物或者蛇头撞倒自己身体,则游戏结束!2.2游戏处理流程游戏运行流程图如下(图1):图1贪吃蛇游戏流程图2.3模块设计本系统主要完成以下几方面的功能:游戏控制功能———包括游戏的开始、暂停、退出界面布局,其他辅助功能(如游戏积分,游戏过关等)。

游戏总设计模块划分为游戏主界面模块、游戏控制模块和游戏菜单模块。

1)游戏主界面模块游戏主界面模块主要包括:游戏界面的边界,即游戏中的墙;游戏中蛇的构成,以及苹果的构成;游戏中障碍物的构成;游戏中分数显示以及关卡显示。

基于Android贪吃蛇游戏的设计与实现

基于Android贪吃蛇游戏的设计与实现

基于Android贪吃蛇游戏的设计与实现作者:陈羽修来源:《科技视界》2016年第01期【摘要】Android作为新一代的智能手机操作系统以及移动软件开发平台,以其强大的功能和开放性的特点而迅速发展。

贪吃蛇游戏由传统街机游戏Blockade的基础上发展而来,能增强人的反应能力,是一款适用于各个年龄阶段的娱乐性的游戏。

本文基于Android开发环境,采用Java语言编程,设计了一个android的手机应用软件贪吃蛇游戏。

【关键词】Android;贪吃蛇; Java;智能手机0 引言Android是Google开发的基于Linux平台的开源手机操作系统,它包括操作系统、用户界面和应用程序。

手机游戏作为Android系统平台的一个重要组成部分,正在被越来越多的人所重视。

贪吃蛇游戏由传统街机游戏Blockade的基础上发展而来,能增强人的反应能力,是一款适用于各个年龄阶段的娱乐性的游戏。

本文基于Android开发环境,采用Java语言编程,设计了一个android的手机应用软件贪吃蛇游戏。

1 Android开发环境Android开发环境搭建包括JDK、Eclipse、Android SDK、ADT的安装以及AVD的创建,步骤如下:(1)JDK安装,安装完成之后,可以在检查JDK是否安装成功。

(2)Eclipse安装。

(3)Android SDK安装,检查SDK是否安装成功。

(4)ADT安装。

(5)创建AVD,为使Android应用程序可以在模拟器上运行,必须创建AVD,创建AVD完毕后,检查测试环境是否搭建成功。

2 贪吃蛇游戏总体设计2.1 功能需求贪吃蛇是一款经典的手机游戏,一条蛇在封闭围墙里,通过按键盘上下左右四个键控制蛇向上下左右四个方向移动,如果蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记1分;若吃到奖励苹果,加两分;若吃到毒苹果,则减3分。

在游戏过程中,如果长按住方向键不放,则蛇的移动速度加快,松开方向键,恢复原速。

贪吃蛇游戏开发与实现

贪吃蛇游戏开发与实现

南京晓庄学院手机游戏开发技术报告贪吃蛇游戏开发与实现所在院(系): 数学与信息技术学院学号:XXXXXXX学生姓名:XX年级专业: 08计算机科学与技术指导教师: XXX提交日期: 2011 年 11 月第一章、开发平台与技术概述 (5)1.1开发环境 (5)1.2 WTK、ECLIPSE与JAM的介绍 (5)(1)WTK (5)(2)Eclipse (5)1.3 JA V A语言介绍 (6)(1)面向对象 (6)(2)平台无关性 (6)(3)分布式 (6)(4)可靠性和安全性 (6)(5)多线程 (6)第二章J2ME及其体系结构概述 (7)2.2体系结构 (7)2.3 移动信息设备简表概述 (7)第三章手机游戏开发过程 (9)3.2 详细设计 (9)3.2.1 代码设计 (10)第四章程序的调试与运行 (14)4.2 游戏的运行环境 (16)第五章总结 (17)致谢 (18)参考文献 (19)摘要随着通信技术的发展和手机的普及,手机游戏的开发技术越来越为人们所关注。

以J2ME为开发平台,利用Java提供强大工具,不但可以在手机上实现静态HTML技术所无法实现的计算处理、数据存储、与服务器的通信等功能,而且能够开发各种手机游戏。

本文在介绍J2ME及其体系结构的基础上,以贪吃蛇游戏为实例,描述了借助J2ME的MIDlet类库开发手机游戏的过程。

本次论文重点在于J2ME技术的应用,通过对手机游戏开发和MIDP 2.0的研究,开发了一款操作简单,并有一定可玩性的手机空中射击游戏。

在游戏中玩家可以通过手机的方向键控制己方飞机的移动,己方飞机自动发射子弹。

敌方飞机按照预定程序移动并自动发射子弹。

当我方飞机发射子弹打中敌方飞机,敌方飞机爆炸,同理,敌方飞机发射子弹打中我方飞机时我方飞机爆炸。

当双方飞机相撞时都爆炸。

关键词J2ME,手机游戏,MIDP,SPRITE,永久性数据AbstractAlong with the development of mobile communication technology and the popularization of mobile games development technology for people place more and more closeNote. In J2ME for development platform, and use Java provide a powerful tool, not only on the mobile phone can realize the static HTML technology is unable to computing processing, data storage, the servers and communications, and other functions, but also to the development of mobile games. This paper introduces the system structure of the J2ME and its foundation, takes the snake game, for example, a description of the J2ME MIDlet class library with the development process of mobile games.This paper emphasis is on J2ME technology application, through to the cell phone game development and MIDP 2.0 research, developed a simple operation, and a certain can play sex of mobile phone air shooting game. In the game, the player can through the phones the direction key control our plane movement while the plane to be automatic fire bullets. The enemy plane are set to move and automatic program fire bullets. When our plane hit the enemy bullets, enemy aircraft explosion, by the same token, the enemy fire bullets hit our plane exploded when our plane. When both sides are explosion when plane collided.Key words J2ME, mobile games, MIDP, SPRITE, permanent data第一章、开发平台与技术概述1.1开发环境操作系统:Microsoft Windows XP程序语言:Java 2开发包:Sun Java(TM) Wireless Toolkit 2.5.2 for CLDCIDE:Eclipse 3.21.2 WTK、ECLIPSE与JAM的介绍(1)WTKWtk的全称是Sun J2ME Wireless Toolkit —— Sun的无线开发工具包。

基于Android贪吃蛇游戏_本科毕业设计(论文)

基于Android贪吃蛇游戏_本科毕业设计(论文)

本科毕业设计(论文)题目名称:基于Android贪吃蛇游戏学院:计算机科学技术专业年级:计算机科学与技术08(师)级摘要本课题是利用java语言在Android平台上进行手机游戏的开发,由于本人知识的有限,以及客观条件的限制,本人打算开发一个单机版的游戏。

本人在手机上玩过贪吃蛇的游戏,曾经为了和别人比赛,苦苦的玩了好多次,追求高分!后来得知这个小小的游戏是nokia当年很成功的一款手机游戏,许多人都玩过,也很喜欢。

现在这款游戏的版本已经发展到第三版了,手机生产厂商继续开发这个游戏,看来这个游戏还是有很大的市场的。

Google公司2007年11月5日发布的开源的Android 平台——一款包括操作系统(基于Linux内核)、中间件和关键应用的手机平台,并组建了开放手机联盟(Open Handset Alliance),包括Google、中国移动、T-Mobile、宏达电、高通、摩托罗拉等领军企业。

于是,我决定利用自己大学所学的知识,自己在指导老师的帮助下,独立开发这个小游戏。

本文首先详细介绍了java的一些基本的知识点,在此基础上引出了Android,介绍了Android的基础以及其特点,然后介绍了一下Android将来的一些前景和发展。

重点说明了这个贪吃蛇程序所用到的一些类和控件,包括Drawable,Canvas, Thread,等等。

介绍了这些类的一般的使用方法,以及本程序是如何使用这些类来进行游戏的开发的。

本程序将老少皆宜的经典作品移植到手机上来,为更流行的硬件平台提供应用软件。

这些都将能很好的满足未来人们对手机游戏的需求。

吞吃蛇游戏基于Android平台编写,满足一般手机用户的娱乐需求。

关键词:Android系统; 贪食蛇游戏; 手机游戏Abstract.This topic is using java language on the Android platform mobile phone game development, I limited knowledge, and objective constraints, I intend to develop a stand-alone game. I played the game of Snake, on the phone once in order to match with others, struggling to play many times, the pursuit of high scores! Later learned that this little game nokia was very successful mobile phone games, many people have played, and also enjoyed. Version of the game has been developed to the third edition, mobile phone manufacturers continue to develop this game, it seems that this game is a great market. Open-source Android platform, Google's released on November 5, 2007 - an operating system (Linux kernel), middleware and key applications-based mobile phone platform, and the formation of the Open Handset Alliance (Open Handset Alliance), includingGoogle, China Mobile, T-Mobile, HTC, Qualcomm, Motorola and other leading enterprisesSo, I decided to use the knowledge learned in his college, in the instructor's help, the independent development of this game.This article first details some of the basic java knowledge, on this basis leads to Android, the basis of the Android and its characteristics, and then introduces the Android future prospects and development. Highlights this Snake procedures used and controls, including the Drawable Canvas, Thread, and so on. Describes the general use, as well as the program is how to use these classes to the development of the game. The ages of the classic works transplantation in this program to the phone up, to provide application software for the more popular hardware platforms. These will be well positioned to meet future demand for mobile games. Devour the snake game based on the Android platform, prepared to meet the entertainment needs of the general mobile phone users.Key words: Android system; Gluttony snake game; Mobile game目录摘要 (I)Abstract (II)第1章绪论 (1)1.1 Android简介 (1)1.1.1 Android的来源及发展 (1)1.1.2 Android系统的特点 (2)1.2 项目目的与意义 (2)1.2.1 开发目的 (2)1.2.2 开发意义 (3)1.3 国内外现状分析 (3)1.3.1 国内外手机系统现状 (3)1.3.2 国内外手机应用现状 (4)1.3.3 发展趋势 (5)第2章方案论证 (6)2.1 经济可行性分析 (6)2.2 技术可行性分析 (6)2.2.1 Android平台特性 (6)2.2.2 Android平台架构 (6)2.2.3 Android应用程序组件 (7)2.3 本项目的开发方法 (8)2.4 开发工具及环境简介 (10)2.4.1 开发工具Eclipse简介 (10)2.4.2 开发环境简介 (10)第3章需求分析 (11)3.1 系统开发目标 (11)3.2 系统需求分析 (11)3.2.1 业务需求分析 (11)3.2.2 用户需求分析 (12)3.2.3 功能需求分析 (12)第4章过程论述............................................................................. 错误!未定义书签。

贪吃蛇毕业设计论文

贪吃蛇毕业设计论文

贪吃蛇毕业设计论文贪吃蛇毕业设计论文在计算机科学领域中,贪吃蛇游戏是一个经典的案例,用于教授和研究各种算法和数据结构。

它是一款简单而又富有挑战性的游戏,玩家通过控制一条蛇的移动,吃掉食物,同时避免碰到自己的身体或边界。

贪吃蛇游戏的设计和实现涉及到许多计算机科学的基本概念和技术,包括图形绘制、用户输入、碰撞检测等等。

本篇论文将探讨贪吃蛇游戏的设计和实现过程,并介绍一些有趣的扩展功能和算法。

首先,我们将讨论游戏的基本设计思路和目标。

其次,我们将介绍游戏的图形界面和用户交互。

最后,我们将探讨一些扩展功能和算法,例如自动寻路和难度调节。

首先,我们需要明确贪吃蛇游戏的设计目标。

贪吃蛇游戏的核心目标是让玩家蛇吃到尽可能多的食物,同时避免碰到自己的身体或边界。

为了达到这个目标,我们需要设计一个直观而又富有挑战性的游戏界面,并提供简单而又灵活的用户交互方式。

其次,我们需要实现游戏的图形界面和用户交互。

在贪吃蛇游戏中,我们通常使用一个二维的网格来表示游戏界面,每个格子可以是空白、蛇身或食物。

我们可以使用图形库来绘制这个网格,并实现蛇的移动和食物的生成。

同时,我们还需要处理用户的输入,例如通过键盘控制蛇的移动方向。

接下来,我们可以考虑一些有趣的扩展功能和算法。

一个常见的扩展功能是增加难度调节,使得游戏可以逐渐变得更加困难。

我们可以通过增加蛇的移动速度、减少食物的生成频率等方式来实现难度调节。

另一个有趣的扩展功能是自动寻路算法,可以让蛇自动找到最优的吃食物路径。

这可以通过使用搜索算法,例如广度优先搜索或A*算法来实现。

在设计和实现贪吃蛇游戏的过程中,我们还需要考虑一些性能优化和错误处理的问题。

例如,当蛇碰到自己的身体或边界时,游戏应该结束并显示得分。

此外,我们还需要考虑如何处理大规模的游戏界面和复杂的用户输入,以确保游戏的性能和可靠性。

综上所述,贪吃蛇游戏是一个经典的案例,用于教授和研究各种算法和数据结构。

在设计和实现贪吃蛇游戏的过程中,我们需要考虑游戏的基本设计思路和目标,实现游戏的图形界面和用户交互,并探讨一些有趣的扩展功能和算法。

贪吃蛇实验报告论文

贪吃蛇实验报告论文
第三行代码设置重复播放
注意一下:为了防止编译时文件拷贝到其他文件盘的根目录下导致使用绝对位置而打不开文件,所以贴图和背景音乐都使用的是相对位置。
学生资源提供了一个
backmusic.wma的文件:
2.
将蛇身体转化为行列坐标,每个节点为20X20:
遍历输出蛇身体,默认为红色,蛇头居中加一个黄色的圆圈作为眼睛:
tail=(snake*)malloc(sizeof(snake));
tail->left=startCol*20;
tail->top=(startRow+i+1)*20;
tail->right=(startCol+1)*20;
tail->bottom=(startRow+i+2)*20;
p->next=tail;
for(i=0;i<ROWS;i++)
{
left=X;
right=left+20;
for(j=0;j<COLS;j++)
{
if(map[i][j]==1&&i==0)
{
putimage(left,top,&imgtop);
}
if(map[i][j]==1&&i==(ROWS-1))
{
putimage(left,top,&imgbottom);
inty=(p->top+p->bottom)/2;
setfillcolor(YELLOW);
fillcircle(x,y,2);
}
p=p->next;
}
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于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;2、编写存放图片索引用图片的X,Y轴位置;public void setTile(int tileindex, int x, int y){ mTileGrid[x][y] = tileindex; }3. 把图片素材加入到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;}4、调用以上的方法以循环的方式位置数组赋值以及图片的索引,private void updateWalls() {for (int x = 0; x < mXTileCount; x++) {setTile(GREEN_STAR, x, 0);setTile(GREEN_STAR, x, mYTileCount - 1); }for (int y = 1; y < mYTileCount - 1; y++) {setTile(GREEN_STAR, 0, y);/设置左边的界线的位置setTile(GREEN_STAR, mXTileCount - 1, y);/设置右边的界线的位置}}5、重写VIEW 类里面的方法。

把界线画出。

public void onDraw(Canvas canvas){super.onDraw(canvas);for (int x = 0; x < mXTileCount; x += 1) {for (int y = 0; y < mYTileCount; y += 1) {if (mTileGrid[x][y] > 0) {canvas.drawBitmap(mTileArray[mTileGrid[x][y]],mXOffset + x * mTileSize,mYOffset + y * mTileSize, mPaint);}同上可见:整个界面其实就是由图片数组拼直面成的。

到此,则可以实现游戏背景墙。

2、游戏整个框架的构建1 实现方案游戏的整个框架的构建包括基本的蛇身,苹果的实现,有两种方案:方案一:使用常用的数组来存储蛇身和苹果的点集的信息。

此方案的优点是对数组的操作较为熟悉,实现简单,但是部分操作较为麻烦,有可能出现数组越界,或者浪费太多存储空间。

方案二:使用动态数组ArrayList来存储蛇身和苹果点集的信息。

ArrayList可以用来定义为各种不同类型的数组,不仅仅局限于int整型;而且ArrayList为用户编程提供了各种借口,比如插入,删除元素,统计元素个数等,实现较为简单,不会出现数组越界的问题。

结合各种因素的考虑,我们在设计中采用第二种方案。

定义Position方法,用于存储蛇身和苹果的点集坐标private class Position { //存储每个点的坐标public int x;public int y;public Position(int xposition, int yposition) {x = xposition;y = yposition;}public boolean equals(int newx,int newy) {if (x == newx && y == newy ){ return true; }return false;} }定义setMode方法,用于表示游戏所处的几种状态:进行,暂停,public void setMode(int newMode){int oldMode = mMode;mMode = newMode;if(newMode == RUNNING && oldMode != RUNNING){}if(newMode == PAUSE){}if(newMode == LOSE) {}if(newMode == READY) {}}苹果的实现声明:private ArrayList<Position> mAppleTrail = new ArrayList<Position>();用于存储苹果的坐标位置根据游戏的需要,苹果的位置应该是随机产生的,使用java.util.Random类中提供的随机数实现苹果坐标的随机。

int newapplex = 2+random.nextInt((mYTileCount-2)-4);int newappley = 2+random.nextInt((mXTileCount-2)-4);newapple = new Position(newapplex,newappley);检测苹果坐标是否与蛇的坐标以及墙的左边冲突设置冲突标志位:boolean flag = false;int snakelength = mSnakeTrail.size();for (int index = 0; index < snakelength; index++){if (mSnakeTrail.get(index).equals(newapple.x,newapple.y)){ flag = true; }}墙的冲突检测方法与上同;当产生的新坐标没有问题时,则把新坐标加入到mAppleTrail中。

蛇的实现声明:private ArrayList<Position> mAppleTrail = new ArrayList<Position>();用于存储苹果的坐标位置蛇的初始化蛇身的初始化在ininNewGame中实现,直接把最初要呈现给玩家的蛇的情况定义出来,即添加一定数量的坐标点进入mSnakeTrail中,使得在最初开始游戏时,有蛇可以进行自由移动。

蛇的移动游戏中是通过触发来改变坐标(+1,-1)的方式来改蛇头的方向,包括后面的蛇的碰撞检测都要用到蛇头。

获取蛇的头部:Position head = mSnakeTrail.get(0);蛇的新头部:Position newHead = new Position(2,2);通过设置整型变量mDirection以及mNextDirection来判断蛇下一步移动方向,然后改变蛇头的坐标,使蛇移动switch (mDirection) {case EAST:{newHead = new Position(head.x,head.y-1);break;}…….}蛇的碰撞检测蛇在移动时,若碰撞到墙壁或者自己身体,则游戏结束。

蛇的碰壁检测:if((head.x < 1) || (head.y < 1) || (head.x > mYTileCount-2)|| (head.y > mXTileCount-2)){setMode(LOSE);return;}蛇的自身碰撞的检测:int wallength = mWallTrail.size();for ( int wallindex = 0 ; wallindex < wallength; wallindex++){Position c = mWallTrail.get(wallindex);if (c.equals(newHead.x,newHead.y)){setMode(LOSE);return;} }蛇吃苹果的实现蛇所经过的每一个坐标,他们都要在苹果所在的ArrayList<Position> mAppleList = new ArrayList<Position>())坐标集里面集依次判断,若是坐标相同,那个这个苹果就被蛇吃了。

相关文档
最新文档