论文-中北-秦文渊
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
毕业设计说明书
基于Android 的推箱子游戏的设计与
开发
班
姓
学 专 指导教师:
2013年 6 月
秦文渊
基于Android的推箱子游戏的设计与开发
摘要
随着智能手机一步步走进人们的日常生活,它将成为人们通讯和娱乐的主要设备。
因此,手机的娱乐应用服务将会有很大的发展空间,游戏也是其中之一。
本系统主要是实现基于Android的推箱子游戏,推箱子是一款来自Japan的古老游戏,其设计目的是训练人的逻辑思维能力。
游戏场景一般是设定在空间狭小的仓库中,要求把箱子摆放到指定位置。
这就要求玩家巧妙的运用有限的空间和通道,合理的安排箱子的位置和移动次序才可能完成任务。
随着计算机游戏的发展,很多编程爱好者基于该游戏的思想开发出了各种版本、各种类型的推箱子游戏。
这其中也包括很多手机版本的实现,伴随着Android SDK技术的不断发展完善,一些基于Android应用也不断推陈出新,很快推箱子游戏便进入了千家万户。
此Android推箱子游戏是基于Android SDK2.1基础上设计的,主要分为开始游戏、设置、帮助、退出游戏四个功能模块的设计与实现。
本游戏最大的特点是:游戏界面采用的是OpenGL ES技术完成3D游戏的开发。
游戏在第三视角下可随意拖动屏幕变换视角,并可以在第一视角和第三视角之间切换。
本系统采用MVC开发模式,基于Android SDK2.1开发平台,使用Eclipse+Android SDK+DDMS+OpenGL ES作为系统开发、调试的主要工具。
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。
2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。
随后Google以Apache开源许可证的授权方式,发布了Android的源代码。
第一部Android智能手机发布于2008年10月。
Android 逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。
2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。
2012年11月数据显示,Android占据全球智能手机操作系统市场76%的份额,中国市场占有率为90%。
面对如此潜在的游戏市场,为Android手机游戏用户量身定做一款兼具Android
平台特色的手机游戏也实为意义深远。
关键词:Android推箱子游戏,MVC,Android SDK,OpenGL ES
THE DESIGN AND DEVELOPMENT OF THE PUSHBOX
SYSTEM
BASED ON ANDROID
ABSTRACT
As smartphones a step-by-step into people's daily lives , it will be the people 's communication and entertainment device . Phone entertainment applications will have much room for development , the phone game is one of them .This system mainly is to realize the pushed box game based on Android ,Pushed box is a section from Japan's oldest game and designed to train people’s logical thinking ability. Game scene generally are set in the narrow space warehouse, and demanded the box is put to the appointed place. This requires player clever use limited space and channel, reasonable arrangement of the box location and movement order just may complete the task.
Along with the computer game development, many lovers of programming based on this game ideas developed out various versions, various types of pushed box. They include a lot of mobile phones version of the realization, accompanied by Android SDK technology unceasing development, some based on Android applications are constantly, quickly pushed box game entered innumberable families. This Android pushed box game is based on SDK2.1 Android based on design, mainly divides into the game start, game Settings, games help and game exit etc function module design and implementation. The biggest feature of the game : The game interface is OpenGL ES technology to complete the development of 3D games . In the third perspective , the game can easily drag the screen to change the perspective , and can switch between the perspective of the first and third perspective .
The system uses the MVC development pattern, based on Android SDK2.1 development platform , using the Eclipse + Android SDK + DDMS as system development, the commissioning of the main tools.
Android is a kind of free and open source code operating system based on linux,mainly used in mobile devices, such as smartphone and table PC led and developed by Google company and the Open Handset Alliance .In November 2007, Google and 84 hardware manufacturers, software developers and telecommunication operators to form the Open Handset Alliance jointly developing the modified Android system. Afterwards Google released Android source code in the authorized way of Apache open source license . The first Android Smartphone released in October 2008. Android gradually extended to the tablet computer and other fields, such as TV ,digital cameras, game consoles , etc.In the first quarter of 2011,Android surpasses the Saipan system in the market share of world for the first time, leaps to the world first . In November, 2012,the data shows that Android occupy a 76% share of the global Smartphone operating system market, the Chinese market share of 90%.
In the face of such a potential game market, for the Android mobile game users to tailor a possessing characteristics of the Android platform of mobile phone game is also of far-reaching significance.
Keywords: Android pushed box game. SDK2.1 MVC OpenGL ES
目录
1 引言 (1)
1.1开发背景 (1)
1.2 开发目的和意义 (2)
1.3 论文研究内容 (3)
1.3.1基于Android SDK2.1的开发技术 (3)
1.3.2 3D呈现技术 (4)
1.3.3 数据存储技术 (4)
1.3.4 系统的构建 (4)
1.4 Android推箱子系统的相关研究 (5)
1.4.1 MVC开发模式 (5)
1.4.2 游戏策划 (5)
1.4.3Android平台下游戏开发的准备工作 (6)
2 需求分析 (9)
2.1 系统基本功能描述 (9)
2.2 可行性分析 (9)
2.2.1 技术可行性 (9)
2.2.2经济可行性 (9)
2.2.3 操作可行性 (10)
2.3 系统需求分析 (10)
2.3.1 业务流程分析 (10)
3 系统设计 (17)
3.1 系统模块设计 (17)
3.2 游戏框架简介 (18)
3.3 各个类的简要简绍 (19)
3.3.1 公共类 (19)
3.3.2 辅助界面类 (19)
3.3.3 游戏界面相关类 (19)
3.3.4 情景相关类 (20)
3.3.5 自定义控件及工具类 (21)
4 系统实现 (22)
4.1 实现概况 (22)
4.1.1 主控制类——MyActivity的实现 (22)
4.1.2 3D技术呈现 (24)
4.1.3 数据存储 (26)
4.2 系统界面(采用截图呈现) (27)
4.2.1 主界面 (27)
4.2.2 开始游戏 (27)
4.2.3 机器人把箱子推到目的地 (28)
4.2.4 设置界面 (28)
4.2.5 帮助界面 (29)
4.2.6 游戏通关界面 (29)
4.2.7 游戏过程中多视角变换 (30)
4.2.8 最佳记录 (31)
5 测试 (32)
6 结论 (33)
参考文献 (34)
致谢 (35)
1 引言
1.1开发背景
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。
2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。
随后Google以Apache开源许可证的授权方式,发布了Android的源代码。
第一部Android智能手机发布于2008年10月。
Android 逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。
2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。
2012年11月数据显示,Android占据全球智能手机操作系统市场76%的份额,中国市场占有率为90%。
Android平台优势(1)开放性:在优势方面,Android平台首先就是其开发性,开发的平台允许任何移动终端厂商加入到Android联盟中来。
显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。
(2)不受束缚:在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。
自从2007年iPhone上市后,用户可以更加方便地连接网络,运营商的制约减少。
随着EDGE、HSDPA这些2G至3G移动网络的逐步过渡和提升,手机随意接入网络已不是运营商口中的笑谈。
(3)丰富的硬件:这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。
功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容,如同从诺基亚Symbian风格手机一下改用苹果iPhone,同时还可将Symbian中优秀的软件带到iPhone上使用、联系人等资料更是可以方便地转移。
(4)方便开发:Android平台提供给第三方开发商一个十分宽泛、自由的环境,不会受到各种条条框框的阻扰,可想而知,会有多少新颖别致的软件会诞生。
但也有其两面性,血腥、暴力、情色方面的程序和游戏如何控制正是留给Android难题之一。
(5)Google应用在互联网的Google已经走过10年度历史,从搜索巨人到全面的互联网渗透,Google服
务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android平台手机将无缝结合这些优秀的Google服务。
在我们的生活中有许多的游戏,但是游戏不同,它也会给玩家带来不同的感受和生活理念。
游戏变为我们日常生活必不可少的娱乐项目,也带动了相关产业市场的发展。
游戏平台是经过从游戏机到电视游戏,然后从到PC游戏到手机游戏,中间经历了很多的技术的更新和变革。
但随着新技术的发展和我们生活水平质量的提高,手机开始逐渐普及,因为手机非常小巧便捷性的特性成为我们日常生活中必备通讯工具。
而基于手机平台的游戏也就拥有巨大的市场空间,也因随着3G通讯的普及,手机游戏必然会迎来新的一轮游戏热潮!
1.2 开发目的和意义
全球领先的移动互联网第三方数据挖掘和整合营销机构艾媒咨询(iiMedia Research)今日发布的《2012中国手机游戏市场年度报告》。
报告显示,2012年中国手机游戏市场规模达到58.7亿元,较2011年增长79.0%。
其中,2012年中国手机网络游戏市场规模达到21.77亿元。
图1.1 中国手机游戏市场规模状况图
2012年手机网游在数量与质量都有了较大的提升,手机网络游戏得到了快速发展。
部分精品手机网游在收入方面的优秀成绩也不断吸引着巨头与更多手机网络游戏开发者进入。
预计2013年中国手机网络游戏市场将会有更多的精品出现。
艾媒咨询(iiMedia Research)分析认为,智能手机性能的不断提升与迅速普及,以及各种优秀手机游戏的出现为市场发展奠定了基础。
随着手机游戏平台的逐渐成熟和国内外游戏巨头纷纷布局手机游戏市场,中国手游市场将会继续保持高速发展,手机游戏将会是中国游戏产业新的增长引擎。
艾媒咨询(iiMedia Research)分析认为,受益于手机在游戏操控性和表现力上的优化,玩手机游戏已经成为了手机用户特别是智能机用户不可或缺的日常消遣活动之一,未来手机游戏用户规模将会继续增大。
2012年中国手机网络游戏用户规模的增长,一方面是由于大量手机网游开发者在Android平台上的布局吸引了不少手机用户,另一方面是智能手机的迅速普及扩大了手机游戏用户的基数,部分用户转化为手机网游用户。
得益于未来网络资费的下调和WIFI热点的进一步覆盖,中国手机网络游戏用户规模还将继续扩大。
面对如此潜在的游戏市场,为Android手机游戏用户量身定做一款兼具Android平台特色的手机游戏也实为意义深远。
1.3 论文研究内容
研究并开发一个基于Android的推箱子游戏,所做的主要工作有以下几点。
1.3.1基于Android SDK
2.1的开发技术
Android SDK包含了开发所应用的类库,用户要基于Android平台开发应用就应熟悉SDK的对外接口,其中开发Android游戏应用通常会用到如下一些类,Surfaceview类作为MVC中视图类的基类的开发框架是一般游戏开发比较常用的一种开发框架,使用此类时还需要对其进行创建、销毁,情况改变时的监听,这就还需要实现SurfaceHolder.Callback接口。
其中Android游戏开发还需要通过Graphics类来显示2D图形,Graphics中包括了Canvas(画布)、Paint(画笔)、Color(颜色)、Bitmap(图像)、2D几何图形等常用类,并且还涉及一些OpenGL图
形程序接口方面的技术。
1.3.2 3D呈现技术
OpenGL ES (OpenGL for Embedded Systems) 是 OpenGL三维图形 API 的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。
该API由Khronos集团定义推广,Khronos是一个图形软硬件行业协会,该协会主要关注图形和多媒体方面的开放标准。
OpenGL ES 是从 OpenGL 裁剪的定制而来的,去除了glBegin/glEnd,四边形(GL_QUADS)、多边形(GL_POLYGONS)等复杂图元等许多非绝对必要的特性。
目前的OPenGL ES有两方面的基本内容,Common Profile支持全3D功能,保证游戏的正常运行。
Safety Critical Profile,这是商业软件需要的,华丽的界面在这里不是最优考虑,安全性成为关键,它只能提供最小化的3D功能。
OPenGL ES 还是挺强大的,足以承载各种3D游戏的渲染。
1.3.3 数据存储技术
Android的数据存储有4种方式,分别是Shared Preferences存储技术以“key-value paires”格式的数据存储机制,Files存储技术通过FileInputStrean 和FileOutputStream操作,Network技术通过网络来存储和获取数据。
还有一种就是轻量级数据库SQLite,它是Android的标准数据库,支持SQL语句。
SQLite 数据库功能非常强大,使用起来也非常方便。
1.3.4 系统的构建
本系统采用MVC开发模式,基于Android SDK2.1开发平台,使用Eclipse+Android SDK2.1+DDMS作为系统开发、调试的主要工具。
1.4 Android推箱子系统的相关研究
1.4.1 MVC开发模式
Android遵循MVC开发模式,MVC是模型(Model),视图(View)和控制(Controller)的缩写,其目的实现Web系统的职能分工。
其中Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现; View层用于与用户的交互,通常用JSP来实现; Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。
图1.2 Android中的MVC框架结构图
1.4.2 游戏策划
●游戏情节
本游戏属于休闲益智类游戏,情景设置非常简单,主要有机器人、木箱、目标、墙体和地板等。
●运行的目标平台
本游戏的运行目标平台为Android 2.1、Android2.2或者是更高的Android 版本。
●操作方式
本游戏通过触摸屏幕进行操作,也可以通过键盘操作。
玩家可触控屏幕的虚拟按钮或键盘的方向键完成机器人的前进、推箱子前进、左右转弯等动作,触控右上角的“视角切换”按钮来完成界面视角的切换。
●呈现技术
本游戏界面采用的是OpenGL ES技术完成3D游戏的开发。
游戏在第三视角下可以随意拖动屏幕变换视角,并可以在第一视角和第三视角之间切换。
●音效设置
为增强游戏的用户体验,本游戏添加了背景音乐、机器人推箱子的音效等。
1.4.3Android平台下游戏开发的准备工作
游戏开发前需要做一些必不可少的准备工作,包括游戏中用到的图片、声音素材等。
●本系统所用到的部分图片资源如下所示:
图1.3 欢迎界面图
图1.4 帮助界面图片
图1.5 过关界面图片
图1.6 关于界面图片
声音素材:
本系统为了增加用户体验采用了钢琴名曲《狮子王》作为背景音乐。
2 需求分析
2.1 系统基本功能描述
推箱子是一款来自日本的古老游戏,其设计目的是训练人的逻辑思维能力。
游戏场景一般是设定在空间狭小的仓库中,要求把箱子摆放到指定位置。
这就要求玩家巧妙的运用有限的空间和通道,合理的安排箱子的位置和移动次序才可能完成任务。
具体的功能如下:
1)游戏菜单界面,此界面主要提供用户功能选择。
2)帮助功能,简单介绍游戏,使玩家清楚知道游戏操作从而进行游戏。
3)游戏设置功能,主要实现让该游戏背景音乐的开关和音效的开关以供用户的选择。
4)最佳纪录,每次记录游戏通关的最少步数作为最佳纪录。
5)退出游戏,完全退出本游戏系统,结束游戏。
2.2 可行性分析
本系统的可行性分析包括以下几个方面的内容。
2.2.1 技术可行性
OpenGL ES 与Android SDK2.1技术的有机结合,可以很轻松地开发出推箱子游戏。
因此技术上是可以实现的。
2.2.2经济可行性
随着计算机游戏的发展,很多编程爱好者基于该游戏的思想开发了出各种版
本、各种类型的推箱子。
这其中也包括很多手机版本的实现,伴随着手机与计算机的普及,很快推箱子游戏便进入了千家万户。
因此,从经济上来说,开发推箱子游戏不需要很大的投入,硬件上只需普通的PC电脑一台,附加配置好模拟器的运行环境即可,有条件的话可以再配Android2.1系统的真机一台,用于真机测试。
2.2.3 操作可行性
由于Android可以和Eclipse配置开发环境,且实际开发环境为开源的,所以在操作上是可行的。
综上所述,基于Android的推箱子系统在高校中是可行的。
2.3 系统需求分析
本游戏主要是设定在空间狭小的仓库中,要求小人把箱子摆放到指定位置。
当小人将箱子推到指定位置时箱子变色,当小人碰到障碍物墙壁时小人将无法移动,当所有的箱子都被推到指定的位置时,游戏成功,因此这就要求玩家巧妙的运用有限的空间和通道,合理的安排箱子的位置和移动次序才可能完成任务。
2.3.1 业务流程分析
2.3.1.1 推箱子游戏的主用例分析
推箱子游戏主用例主要分为一些菜单选项的设置和玩游戏的整个过程。
推箱子游戏主用例图
图2.1 系主统用例图
推箱子游戏的主用例描述
1、用例1菜单管理
用例描述:菜单管理
执行者:玩家
前置条件:android手机用户、安装有推箱子应用程序后置条件:可以进行相关游戏选项的设置
基本路径:
1)运行应用程序
2)进入菜单界面
3)进行相关游戏选项的设置或选择开始游戏
2、用例2玩游戏
用例描述:玩游戏
执行者:玩家
前置条件:开始游戏
后置条件:退出游戏或游戏成功
基本路径:
1)运行应用程序
2)进入菜单并选择游戏开始
3)通过手机硬键盘或虚拟键盘控制小人移动从而将箱子移动到指定位置
●推箱子游戏的菜单管理子系统用例分析
玩家通过菜单管理子系统主要可以进行背景音乐和音效的设置,可以查看游戏的帮助界面。
●推箱子游戏菜单管理子系统用例图
图2.2 菜单管理子系统用例图 推箱子游戏菜单管理子系统用例描述
1、用例1.1设置背景音乐
用例描述:设置背景音乐
执行者:玩家
前置条件:进入菜单界面
后置条件:返回菜单界面或开始游戏
基本路径:
1)运行应用程序
2)进入菜单界面
3)触摸菜单界面的设置按钮
4)触摸音乐开关按钮
2、用例1.2设置音效
用例描述:设置音效
执行者:玩家
前置条件:进入菜单界面
后置条件:返回菜单界面或开始游戏
基本路径:
1)运行应用程序
2)进入菜单界面
3)触摸菜单界面的设置按钮
4)触摸音效开关按钮
3、用例1.3帮助
用例描述:帮助
执行者:玩家
前置条件:进入菜单界面
后置条件:返回菜单界面或开始游戏
基本路径:
1)运行应用程序
2)进入菜单界面
3)触摸菜单界面的帮助按钮
4)跳转到游戏规则的查看界面,玩家可以对照游戏规则开始游戏
2.3.1.3推箱子游戏的游戏过程子系统用例分析
推箱子游戏的游戏过程子系统用例主要分为开始游戏和退出游戏。
推箱子游戏的游戏过程子系统用例图
如图2.3所示:
图2.3 游戏过程子系统用例图
1、用例2.1开始游戏
用例描述:开始游戏
执行者:玩家
前置条件:进入开始游戏界面
后置条件:可以选择退出游戏或者继续游戏
基本路径:
1)运行应用程序
2)进入游戏主界面
3)将箱子推到指定的位置后继续玩下一关或者直接退出游戏2、用例2.2退出游戏
用例描述:退出游戏
执行者:玩家
前置条件:进入开始游戏界面
后置条件:无
基本路径:
1)运行应用程序
2)进入游戏主界面
3)触摸退出游戏的按钮,游戏结束
3 系统设计
3.1 系统模块设计
模块设计的主要方法是结构化方法,主导思想是以系统的逻辑功能设计和数据流关系为基础,采用“自顶向下,逐步求精”的设计方法,将本系统分解为功能明确,易于修改,大小适中的模块结构。
本系统主要分为六个基本模块:游戏过程模块、游戏设置模块、游戏帮助模块、游戏关卡设置模块、退出模块,系统各模块
对游戏过程模块的子模块描述如下。
1)初始化模块。
该模块包括屏幕初始化和游戏的初始化。
屏幕初始化用于绘制整个初始画面,游戏初始化是构建每一关的关卡。
2)画图模块。
该模块主要是被其它模块调用,用于画墙、画箱子、在目的地画箱子、画小人和画目的地的模块。
3)移动箱子模块
该模块用于移动箱子,包括目的地之间、空地之间和目的地与空地之间的箱子移动。
4)移动角色模块
该模块用于控制小人移动,从而推动箱子到目的地的模块。
5)键盘事件监听模块
该模块主要通过对键盘事件,触摸事件的响应处理模块。
3.2 游戏框架简介
图3.2 游戏框架简介图
3.3 各个类的简要简绍
3.3.1 公共类
●Activity的实现类MyActivity
该类继承并扩展了Activity类,是整个游戏程序的入口。
●常量类Constant
该类封装了游戏中用到的全部常量,便于游戏的维护和管理。
3.3.2 辅助界面类
●欢迎界面WellcomeSurfaceView
该类实现游戏的欢迎界面,主要负责欢迎界面的绘制工作。
●主菜单界面MainView
该类为游戏主菜单界面类,主要负责主菜单中的虚拟按钮的绘制及监听事件工作。
●音效控制界面SoundView
该类为游戏中音效控制界面类,其主要负责游戏中背景音乐和音效的开关。
●胜利界面LastView
该类为玩家通关游戏后进入的界面,当玩家按下“返回”按钮后,会跳转到主菜单界面。
3.3.3 游戏界面相关类
●游戏主界面类MySurfaceView
该类游戏的主界面类,主要负责游戏中各个对象的创建、游戏中各个实体类的绘制等工作。
●虚拟按钮触控监听线程类KeyThread
该类为游戏界面虚拟按钮触控监听线程类,主要负责判断“前进”虚拟按钮是否被按下。
3.3.4 情景相关类
●圆类Circle
该类为绘制3D圆面的封装类,是绘制机器人头底面部分不可缺少的组件。
●立方体类Cube
该类为绘制3D立方体的封装类,游戏中的普通木箱和红色木箱就是该类的对象。
●立方体运动类CubeGo
该类为立方体木箱运动动画的封装类,当机器人遇到可以推动的木箱时,执行木箱运动动画。
●立方体组类CubeGroup
该类为立方体木箱组的封装类,负责在游戏界面被创建时扫描地图数组,并且在相应位置绘制木箱。
●圆柱类AirCraft
该类为圆柱体的封装类,机器人的天线、手臂、和身体等就是该类的对象。
●地板类Floor
该类为游戏界面中地板的封装类,负责根据地图数组的大小绘制相应的地板。
●半球类Globe
该类为游戏界面中半球的封装类,负责绘制机器人的上半部分、手臂的两端等。
●机器人类Robot
该类为游戏界面中机器人的封装类,负责利用前面简绍的圆类、半球类等拼接成一个机器人。
●机器人组类RobotGroup
该类为机器人组类的封装类,负责扫描地图数组,并且在相应位置绘制机器人。
●矩形纹理类TextureRect
该类为游戏界面中矩形纹理的封装类,负责绘制游戏中木箱每一面的矩形纹理和绘制红色目标。
●矩形纹理组类TextureRectGroup
该类为游戏界面中矩形纹理组的封装类,负责扫描地图数组,并且在相应位置绘制红色目标。
●墙体类Wall
该类为游戏界面中墙体的封装类,负责扫描地图数组,并且在相应位置绘制上部和内部墙体。
●外围墙体类WallOutSide
该类为游戏界面中外围墙体的封装类,负责根据地图数组绘制游戏界面中的外围墙体。
3.3.5 自定义控件及工具类
●主菜单按钮MainMenuButton
该类为主菜单界面中按钮的封装类,主菜单的“开始”按钮就是该类的对象。
●图片缩放的工具类PicLoadUtil
该类为封装的缩放图片的工具类。
调用其相应的静态工具方法即可对图片进行不等比例的缩放。
4 系统实现
4.1 实现概况
本系统主要分为六个基本模块:游戏过程模块、游戏设置模块、游戏帮助模块、游戏关卡设置模块、最佳记录、退出模块。
下面详细介绍各个游戏核心模块的实现
4.1.1 主控制类——MyActivity的实现
Activity的作用是对各个界面进行管理、切换以及对欢迎界面、主界面中线程发送来的请求做出响应,其代码框架如下。
Enum WhichView {WELLCOM_VIEW,MAIN_VIEW,GAME_VIEW,
SOUND_VIEW,LAST_VIEW,HELP_VIEW}
public class MyActivity extends Activity {
HashMap<Integer, Integer> soundPoolMap; //声音池中声音ID与自定义声音ID 的Map
Handler myHandler = new Handler(){//处理各个SurfaceView发送的消息public void handleMessage(Message msg) {
switch(msg.what)
{
case 0:
goToMainView();//进入“选择主界面”
break;
case 1:
goToGameView();//进入"游戏界面"
break;
case 2:
goToSoundView();//进入背景音乐控制界面
break;
case 3:
Constant.COUNT=0;//关数清零
goToLastView();
break;
case 4:
goToHelpView();//进入帮助界面
break;
}
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//游戏过程中只允许调整多媒体音量,而不允许调整通话音量
setV olumeControlStream(AudioManager.STREAM_MUSIC);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题
getWindow().setFlags(youtParams.FLAG_FULLSCREEN,
youtParams.FLAG_FULLSCREEN);//去掉标头this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); //强制横屏
//获取分辨率
DisplayMetrics dm=new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
//给常量类中的屏幕高和宽赋值
if(dm.widthPixels>dm.heightPixels)
{
Constant.SCREEN_WIDTH=dm.widthPixels;
Constant.SCREEN_HEIGHT=dm.heightPixels;
}else。