ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:2.20MB ,
资源ID:1031352      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-1031352.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(AppInventor射击游戏.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

AppInventor射击游戏.docx

1、AppInventor射击游戏Android应用程序开发结课报告 软件名称:App Inventor 2班 级:xxxx学 号:xxxx学生:xxxx指导教师:xxxx 2015年4月24日1综述1.1应用介绍是一款单人射击游戏。游戏中玩家扮演一个女孩,面对不断出现的虫子,进行射击。随着分数的增加,虫子的速度越来越快,关卡上升,出现不同的大Boss。女孩必须躲过虫子的冲撞才能存活下来。1.2 开发的目的与目的 Google App Inventor是一个完全在线开发的Android编程环境,抛弃复杂的程式代码而使用积木式的堆叠法来完成您的Android程式。对于Android初学者或是机器人开

2、发者来说是一大福音。他们不大需要太华丽的界 面,只要使用基本元件例如按钮、文字输入输出即可。非常适合学习与有兴趣的学生进行开发创造。1.3 类似的产品游戏中,单人射击游戏很多。但是利用App Inventor编程环境开发的却少之又少。本次课程设计试一次尝试,App Inventor 到底能开发出什么样水准的游戏出来。1.4 开发环境AI2中文版在线开发1.5 开发环境的搭建1.登陆网址:2.找到中文版在线开发3.进入:contest.appinventor.mit.edu/login/4.利用进行注册选择中文即可进行中文版开发。2 开发详解 2.1开发所用到的素材展示游戏所用到的素材素材名类型

3、用途素材名类型用途back1back12.png图片游戏界面的背景图片(随机)Boss1boss20.png(随机)图片小怪的贴图Boom1boom5.png图片爆炸效果的图片(渐进)bossHP.png图片Boss血量的贴图BossZidan.png图片BOSS的子弹贴图Class.png图片关卡的贴图HP.png图片女孩血量的贴图Ic.jpg图片应用图标的图片nvhai.png图片女孩的贴图NO1.png图片排行榜第一名贴图NO2.png图片排行榜第二名贴图NO3.png图片排行榜第三名贴图nvhaiZidan.png图片女孩子弹的贴图SC.png图片分数的贴图scoreBack.png图

4、片排行榜页面背景Zaoze1.png图片怪物出现位置贴图Zaoze2.png图片怪物出现位置贴图Baozha.mp3音效子弹爆炸音效zidanM.mp3音效子弹发射音效nvhaiM.mp3音效女孩受伤音效Screen1BackMusic.mp3音乐主菜单界面音乐mainBack.mp3音乐游戏界面音乐BossTimeMusic.mp3音乐Boss出现的音乐scoreBackMusic.mp3音乐排行榜界面音乐settleBackMusic.mp3音乐设置界面的音乐素材截图 2.2 主界面的设计2.2.1主界面的效果预览图2.2.2主界面的前端设计主界面组件设计如下所示:主菜单界面用到的控件有7

5、个,分别是:Layout: 垂直布局,Label: gameName,Button:startButton:settle,Button:exit,音频播放器:backMusic,微数据库:database这是游戏的主菜单界面,点击开始,设置,排行榜分别跳转到相应界面:main(游戏界面),settle(设置界面),score(排行榜界面)。点击退出键则退出应用。具体控件的属性设置依照屏幕大小自行调整。2.2.3主界面的逻辑设计按钮的点击函数:逻辑界面主要处理按钮的点击事件,根据相应的屏幕名称调用“打开屏幕”的动作,打开相应的界面。Screen1的初始化函数:条件语句处理调用数据库中标签“mus

6、ic”的值,此值用来记录settle界面中设置的音乐是否允许播放。如果此值为1,或者还未记录(返回值1,表明第一次打开此界面,默认允许播放音乐),则播放此界面的背景音乐“Screen1BackMusic.mp3”。 2.3 游戏界面的设计2.3.1 游戏界面的效果预览图在此有必要先介绍一下游戏规则,以便更好的理解逻辑的设计:1.开始时女孩血量为10,初始化计分板信息。2.小怪从四角的云朵里出现,随机进行移动,一次只出现一个小怪。3.女孩可以进行移动,可以点击屏幕的任何地方,进行射出子弹的操作。每次只能射出已发子弹。4.小怪的移动速度随着分数的增加而加快。5.当分数达到10的倍数时,BigBos

7、s出现,血量,速度根据关卡增加。6.BigBoss出现时小怪不出现,计分板不记录分数,背景音乐改变。7.当BigBoss死亡时,游戏出现小怪,计分继续。8.当女孩血量减少到0时,弹出对话框,提示是否继续或终止游戏。9.选择对话框相应选项进行相应的操作。2.3.2游戏界面的控件设计设计界面如下图:控件使用情况:Main界面的控件个数为9(layoutmain计分板)+10(CanvasGround画布)+9(其他)=28:1. 其中计分板中有四个图像控件,四个标签。2. 画布中有nvhai(女孩),BigBoss(大怪),zaoze1zaoze4(记录虫虫出现的位置,四角个一个),Zidan(子

8、弹),boss(小怪),boom(记录爆炸图像位置)共九个图像精灵。3. ISwin(对话框):用于显示结束游戏的消息。4. MovezidanClock(计时器):用于跟踪nvhai的位置,更新子弹的位置坐标。属性设置为:计时间隔:10 启用计时:true 一直计时:true5. setBoomImage(计时器):用于更新爆炸的图片,实现帧动画效果。属性设置为:计时间隔:1启用计时:false一直计时:false6. nvhaiM,zidanM,baozhaM(三个音效控件):分别控制女孩受伤时,子弹发射时,子弹击中怪物时发出音效。最小间隔设为:5007. MainMusic,BossTi

9、meMusic(两个音乐播放器):分别控制默认背景音效与BigBoss出现时的背景音效。属性设置:循环播放:true只在前台播放:true(界面被压回会自动停止)8.scoredatabase(微数据库):用来读取数据库中的信息,判断是否播放背景音。关于数据库的使用文章最后会给出说明。2.3.3游戏界面的逻辑设计概览 31块逻辑块:由于main界面的实现函数较多,我将以实际的游戏流程解释说明所有函数:先来看几个全局变量的定义:HP:女孩的血量信息,初始化为10.BigBossHP:大怪的血量信息,初始化为0.MAXHP:最大血量10.CLASS:关卡初始化为1.Point: 分数初始化为0.先

10、看定义的几个过程,之所以写成过程函数,因为他们经常被调用,写成函数能有效减少代码量。1. 初始化main 界面的函数:关于标签“music”的作用,之后有解释。2. initMain函数用到的函数:初始化计分板,设置计分板,初始化女孩,初始化子弹,初始化小怪 如下:由于都是进行一般的属性值设置,仔细阅读各个属性的初始值,关系到事件的响应条件。现在主要关注函数的调用:Initzidan中调用函数zidanBacktoNvhai函数,使zidan(图像精灵)始终在nvhai位置上,并初始时不显示。函数如下:3. 几个重要的事件处理:(1)女孩移动事件,涉及函数:当nvhai精灵被拖动时,改变位置,

11、并利用计时器始终更新zidan的位置跟随nvhai。判断子弹速度表明:当子弹速度不为零,说明在运动中,此时子弹不响应任何操作。(2) 子弹的发射事件:判断子弹速度,如果子弹在飞行中(速度不为零),触发操作。调用标签值“sound”,读取是否开启音效,进行相应操作。之后几个函数中有类似控制音效或者音乐的操作。(3) 各个精灵到达边界事件:需要说明的是子弹到达边界后,立即初始化操作,移动到nvhai所在的位置。保证没回子弹都是从nvhai精灵位置处发射。(4) Zidan的碰撞事件:说明:子弹碰到小怪 或者BigBoss,执行不同的操作。首先判断是否播放音效,之后调用playBoomImage函数

12、播放爆炸画面。此细节在(8)中有详解。如果子弹碰到小怪,则初始化zidan,boss(小怪),Point值加一,设置计分板,调用ISBigBoss判断是否应该出现BigBoss。如果子弹碰到BigBoss,初始化子弹,减少BigBossHP值,判断BigBossHP是否为零,是则停止隐藏BigBoss,改变音乐,并初始化小怪initBoss。相应函数如下:playBoomImage,ISBigBoss分别在(8),(5)中讲解。(5) BigBoss的生命周期:在(4)中调用ISBigBoss函数,就是判断分数是否达到出现BigBoss的情况。如果达到,则停止小怪活动,初始化BigBoss,设

13、置随机贴图,设置随机位置,设置显示状态,速度等属性。(6) Nvhai的碰撞事件:当女孩被Boss或者BigBoss碰到后,播放音效,HP减少,更新计分板的值,判断是否结束游戏,HP=0时存储分数数据库。saveScore函数操作:在数据库中设置三个标签,依次进行比较,储存游戏成绩。排行榜只显示前三名。getISwin显示对话框,如下(7)中所示。(7) 对话框事件: 显示对话框,并进行选择完成完成的事件操作:选择“是”则初始化main,重新游戏。选择“不要”则返回Screen1屏幕。(8) 爆炸播放帧动画:播放帧动画的部分利用了控件setBoomImage(计时器),playBoomImag

14、e函数调用boom精灵到发生子弹碰撞的位置,显示图片为boom1,之后利用计时器间隔1ms的时间切换图片,依次播放5图片,展示爆炸效果。之后设置setBossImage状态为false,boom状态为false,等待下一次调用。至此main所有逻辑31块逻辑块均已展示完毕。函数调用关系很繁琐,每一时刻的精灵们的状态至关重要,是展示正常游戏所必须完全了解的,否则极容易出错。 2.4 设置界面的设计2.4.1设置界面的效果预览图 2.4.2 设置界面的控件设计设置界面需要的控件:一个垂直布局下的四个水平布局。第一个水平布局显示文字:设置中间两个水平布局分别左右各一个占位标签,中间一个按钮,显示音乐

15、音效设 置。第四个水平布局占位用。一个微数据库:注意,一个应用只有一个微数据库,main界面的database与排行榜界面的database,虽然名字不同,但是是一个数据库,共用标签值。一个音乐播放器:播放背景音乐2.4.3 设置界面的逻辑设计设置界面共四个逻辑块。任务相对较为简单:Settle回压函数:返回到主菜单界面。Settle初始化函数:根据微数据库中标签“music”的值,决定是否播放背景音乐。同时设置musicButton,soundButton的图片值。按钮点击事件:两个按钮分别转换标签“music”,“sound”的值,从而达到点击一次,进行开关的效果,每次点击后,都要更新微数

16、据库的标签值(1表示允许播放,0 表示不允许播放),以供其他界面使用。同时更新按钮的图片值,使之符合设置意图。同时更新当前页面的音乐播放设置。 2.5 排行榜界面的设计2.5.1 排行榜界面的效果预览图2.5.2 排行榜界面的控件设计此界面所用到的控件有:标签:显示文本“排行榜”垂直布局:三个水平布局每个水平布局下一个图像控件,一个标签控件。图像控件显示王冠图片,标签显示分数。微数据库scoredatabase:读取分数数据使用。音频播放器:播放背景音乐。2.5.3 排行榜界面的逻辑设计Score初始化操作:读取数据库中的三个值,分别为第一名,第二名,第三名的成绩。通过设置文本值显示出来。值的存储是在main界面的saveScore函数中进行的实现。判断是否进行背景音乐的播放。Score压回事件:返回到Screen1界面。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2