基于Android的植物大战虫子APP的设计
2017-09-14陕西师范大学潘瑞娟
陕西师范大学 潘瑞娟
基于Android的植物大战虫子APP的设计
陕西师范大学 潘瑞娟
文章介绍了基于Android的植物大战虫子APP的设计与实现,阐述了需求分析、概要设计、详细设计三个部分的内容。使用Eclipse和Android SDK平台进行开发,采用SurfaceView游戏框架和双缓存技术,从内存中获取图像数据,消除由于复杂绘图造成的图像闪烁问题。经系统测试,实现了游戏在Android手机上的运行,具备一定的可玩性。
Android;APP;手机;Java
0 引言
随着经济技术的发展,游戏更新速度更是以秒计算。大多数手机、平板等各种移动终端的系统都是Android。如今的手机游戏再也不是上个世纪八九十年的“推箱子”、“贪吃蛇”等规则简单,思路简单的游戏,它是发展到了可与掌上游戏机相提并论的手机游戏,具有娱乐性和便捷性。
1 开发工具
1.1 Eclipse
Eclipse是自由集成开发环境,简称IDE。最初主要通过Java语言来开发的,通过安装不同的插件,Eclipse可以支持不同的计算机语言,比如C++和C#等开发工具。相对固定的IDE软件而言,具有很强的灵活性。随着平台功能的不断强大,许多软件开发商使用Eclipse框架开发自己的IDE。
1.2 Android SDK
Android SDK即Android Software Development Kit,是一个被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。
2 需求分析
2.1 游戏概述
本游戏分为两个主要部分:主页面、游戏界面两大模块,游戏框架如图1所示。
图1 游戏框架
2.2 项目分析
2.2.1 游戏背景分析
在我们的日常生活中,人类在不断的破坏大自然,植物的破坏让一些植物和生物都无法生存。在这竞争激烈的场面中引起了虫子和人类的大战,为了争夺生存空间,虫子一有机会就向人类的生存的空间发起攻击。人类就会捡起更多的种子来生成更多的植物,抵抗虫子的进攻。通过种子生长为植物,来攻击破坏人类家园的虫子。
2.2.2 游戏思路分析
(1)虫子是进攻方,人类通过种植培育出种子,防御型植物来抵抗虫子的进攻,攻击型植物来攻击虫子的前进。想要植物成长来攻击,防御虫子,需要人类不断的捡起种子,生成植物。
(2)每个等级都有相应的虫子数量,全部消灭之后升级。如果有虫子穿过交战区域到达后方,则游戏失败。
3 概要设计
3.1 游戏设计
游戏设计流程图如图2所示。
图2 游戏设计流程图
3.1.1 植物作战单位设计
(1)南瓜。消耗种子值8,能够生产子弹,攻击力为2。
(2)西红柿。消耗种子值4,能够产生子弹,攻击力为1。
(3)土豆。消耗种子值2,可以抵挡虫子10s,为其他攻击植物争取时间。
(4)西瓜。消耗种子值为10,能够产生子弹,攻击力为3。
3.1.2 碰撞设计
在设计碰撞时,虫子从手机横屏右方向左方移动,当虫子产生后,如果该条路线种植了攻击性植物,就开始发射子弹。子弹,植物与虫子碰撞大小区域即为图片大小区域,当两者发生接触后即发生碰撞。子弹与虫子碰撞后立即消失,虫子生命值就会相应减少,子弹超过手机屏幕右边界后消失。
3.2 软件功能介绍
3.2.1 选择功能
选择功能相当于植物大战虫子游戏的主菜单,在这个模式下,玩家可以根据自己的习惯选择开始游戏或继续游戏,以及点击MORE GAME按钮进入其他游戏下载页面。之后根据玩家在不同位置的触屏事件启用相关的功能模块,在玩家点击设备的返回键时出现“Exit”按钮,点击则退出游戏。
3.2.2 游戏设置
游戏设置功能中有音效设置、震动设置和退出。音效包括点击按钮音效,点击植物音效,安放植物音效,射击虫子音效,收集种子音效,还有升级音效。在设置中可以设置音效和震动的关闭、开启。不同的动作音效不同,给人以愉悦的体验,让玩家能更享受游戏带来的乐趣。
3.2.3 植物安放
植物安放功能中,植物包括西红柿、土豆、南瓜和西瓜等。虫子类包括小黑虫、白头黑虫、七星瓢虫、毛毛虫、蜗牛等。在游戏过程中,玩家可以根据所需的种子数量自由安放植物,还可以通过种植种子培养袋培养种子,这样就更有利于同各种虫子作战。
4 详细设计
4.1 界面设计
通常,软件的界面是指软件和用户交流的外观、按钮和程序等等。为了使游戏在界面上达到耳目一新的感觉,结合了图形和界面设计的有关原理来对界面进行美化、规范化的设计。
4.1.1 结构设计
根据对软件框架的分析,认为游戏应该有以下界面:游戏主菜单、游戏设置界面、结束界面、游戏界面等。
打开软件显示到游戏主菜单、点击“PLAY”按钮后界面转到游戏界面,点击“CONTINUE”按钮继续游戏,用户根据需要选择功能后跳转到相应界面。
4.1.2 交互设计
游戏主界面有一个种子收集区域,还有一个植物存放区域,根据不同的等级加载不同的植物,每种植物种植所需的种子数目不同,当种子数目足够时可以拖动植物到种植区,植物就开始对虫子发起攻击。种植区分为四个横着的跑道,九个竖着方格,一共有三十六个种子种植区域。每行都有虫子进攻。
4.1.3 视觉设计
游戏采用彩色色调,角色造型使用卡通设计表现形式,界面的游戏名称使用植物和虫子组合而成,显得富有活力。
4.2 类设计
4.2.1 SurfaceView框架
子类SurfaceView继承于父类View,和TextView、ImageView等一系列控件是等同的。
根据本游戏的界面设计,所有表示游戏各种状态的整型常量都在该类中被定义:GameMenu、GameWelcome、GameIngday、GameWin、GameLost、GameSelect等将它们初始化。不同游戏状态下的游戏绘图都是通过使用定义画图函数myDraw()里面的switch()语句来实现的。同样,onTouchEvent()函数也是通过这样处理的。
4.2.2 MainMenu类
在游戏的主界面菜单中,所有按钮是否按下的状态值都被定义成boolean类型,并且它们初始化的值都是false。Paly button和Continue button都已经按照主菜单界面设计中的布局绘制完成。
在屏幕的主要硬件监控中的Touch方法中,ACTION_DOWN和ACTION_MOVE这两个事件中检测每个button的状态(是否被按下),如果是,被按下状态的相应图片按钮在draw()函数中绘制完成。在ACTION_UP事件中,将改变按钮的状态,从而转变到相应的游戏状态。如果手机自带的“退出”选项被触发,系统将会调用System.exit(0)方法直接退出游戏界面。
5 结束语
文章简要介绍了游戏的框架设计,重点讨论了游戏功能的设计。总的来看,这个设计只是单机版的游戏,相对于联机版的简单很多。随着手机游戏行业的日趋成熟,网络游戏的优势日趋明显,玩法也变得多样化,所以在实现联机版游戏这个模块还需要有所扩充和提高。
[1]蒋浩.基于Android的游戏设计与开发[D].南京:东南大学,2011.
[2]崔浩然.基于Android平台的手机游戏的设计与实现[D].西安:西安科技大学,2011.
[3][美]Bill Phillips Brian Hardy.Android编程权威指南[M].北京:人民邮电出版社,2014.
[4]李竹林.基于Android系统的斗地主游戏的设计与实现[J].河南科学.2015,33(2):200-203.
[5]耿祥义,张跃平.Java面向对象程序设计[M].北京:清华大学出版社,2013.
[6]李华明.Android游戏编程之从零开始[M].北京:清华大学出版社,2011.
[7]Myeongjin Cho;Ho Jin Lee;Minseong Kim.An Insightful Performance Analyzer for All Software Layers of the Android-Based Systems[J].ETRI journal,2013,35(2):259-269.
潘瑞娟,硕士研究生,现就读于陕西师范大学教育学院现代教育技术专业。