AppInventor射击游戏0001_第1页
AppInventor射击游戏0001_第2页
AppInventor射击游戏0001_第3页
AppInventor射击游戏0001_第4页
AppInventor射击游戏0001_第5页
免费预览已结束,剩余24页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Android 应 用 程 序 开发结课报告软件名称: App Inventor 2 班级: xxxx学号: xxxx学生姓名: xxxx 指导教师: xxxx2015年4月 241 综述 3应用介绍 3开发的目的与目的 3类似的产品 3开发环境 4开发环境的搭建 42 开发详解 4开发所用到的素材展示 4主界面的设计 5主界面的效果预览图 6主界面的前端设计 6主界面的逻辑设计 7游戏界面的设计 8游戏界面的效果预览图 8游戏界面的控件设计 9游戏界面的逻辑设计 10设置界面的设计 19设置界面的效果预览图 19设置界面的控件设计 20设置界面的逻辑设计 21排行榜界面的设计 21排行榜界面

2、的效果预览图 21排行榜界面的控件设计 22排行榜界面的逻辑设计 231 综述应用介绍<<虫虫来袭 >>是一款单人射击游戏。游戏中玩家扮演一个女孩,面对不断出现的虫子, 进行射击。随着分数的增加,虫子的速度越来越快,关卡上升,出现不同的大Boss。女孩必须躲过虫子的冲撞才能存活下来。开发的目的与目的Google App Inventor 是一个完全在线开发的 Android 编程环境,抛弃复杂的程式代 码而使用积木式的堆叠法来完成您的 Android 程式。对于 Android 初学者或是机器人开发者 来说是一大福音。他们不大需要太华丽的界 面,只要使用基本元件例如按钮

3、、文字输入输 出即可。非常适合学习与有兴趣的学生进行开发创造。类似的产品游戏中,单人射击游戏很多。但是利用 App Inventor 编程环境开发的却少之又少。本 次课程设计试一次尝试, App Inventor 到底能开发出什么样水准的游戏出来。开发环境AI2 中文版在线开发开发环境的搭建1. 登陆网址:找到中文版在线开发2. 进入网站:利用邮箱进行注册选择中文即可进行中文版开发。2 开发详解开发所用到的素材展示游戏所用到的素材素材名类型用途素材名类型用途back1图片游戏界 面的背景图 片(随机)Boss1(随机)图片小怪的贴图Boom1图片爆炸效 果的图片(渐 进)图片Boss 血 量的

4、贴图图片BOSS 的子弹贴图图片关卡的贴图图片女孩血量的贴图图片应用图 标的图片图片女孩的贴图图片排行榜 第一名贴图图片排行榜 第二名贴图图片排行榜 第三名贴图图片女孩子弹的贴图图片分数的贴图图片排行榜 页面背景图片怪物出 现位置贴图图片怪物出现位置贴图音效子弹爆 炸音效音效子弹发 射音效音效女孩受 伤音效音乐主菜单 界面音乐音乐游戏界 面音乐音乐Boss 出现的音乐音乐排行榜 界面音乐音乐设置界 面的音乐素材截图主界面的设计主界面的效果预览图主界面的前端设计主界面组件设计如下所示:主菜单界面用到的控件有 7 个,分别是:Layout: 垂直布局, Label: gameName , Butt

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

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

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

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

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

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

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

12、碰到小怪 或者 BigBoss ,执行不同的操作。首先判断是否播放音效, 之后调用 playBoomImage 函数播放爆炸画面。 此细节在( 8)中有详解。如果子弹碰到小怪,则初始化zidan , boss( 小怪 ) , Point 值加一,设置计 分板,调用 ISBigBoss 判断是否应该出现 BigBoss 。如果子弹碰到 BigBoss, 初始化子弹, 减少 BigBossHP值,判断 BigBossHP 是否为零,是则停止隐藏 BigBoss ,改变音乐,并 初始化小怪 initBoss 。相应函数如下:playBoomImage,ISBigBoss 分别在( 8), (5) 中

13、讲解。(5)BigBoss 的生命周期:在( 4)中调用 ISBigBoss 函数,就是判断分数是否达到出现 BigBoss 的情况。如果达 到,则停止小怪活动,初始化 BigBoss, 设置随机贴图,设置随机位置,设置显示状态,速 度等属性。(6) Nvhai 的碰撞事件:当女孩被 Boss 或者 BigBoss 碰到后,播放音效, HP减少,更新计分板的值,判断是否 结束游戏, HP=0时存储分数数据库。 saveScore 函数操作: 在数据库中设置三个标签,依次 进行比较,储存游戏成绩。排行榜只显示前三名。 getISwin 显示对话框,如下 ( 7)中所示。(7) 对话框事件:显示对

14、话框,并进行选择完成完成的事件操作: 选择“是”则初始化 main, 重新游戏。 选择“不要”则返回 Screen1 屏幕。 (8) 爆炸播放帧动画:播放帧动画的部分利用了控件setBoomImage( 计时器 ) , playBoomImage 函数调用 boom精灵到发生子弹碰撞的位置, 显示图片为 boom1,之后利用计时器间隔 1ms 的时间切换图片, 依次播放 5 张图片,展示爆炸效果。 之后设置 setBossImage 状态为 false ,boom状态为 false, 等待下一次调用。至此 main 所有逻辑 31 块逻辑块均已展示完毕。 函数调用关系很繁琐, 每一时刻的精灵

15、们的状态至关重要,是展示正常游戏所必须完全了解的,否则极容易出错。设置界面的设计设置界面的效果预览图设置界面的控件设计设置界面需要的控件: 一个垂直布局下的四个水平布局。第一个水平布局显示文字:设置 中间两个水平布局分别左右各一个占位标签, 中间一个按钮, 显示音乐音效设 置。第四个水平布局占位用。一个微数据库:注意,一个应用只有一个微数据库, main 界面的 database 与排行 榜界面的 database ,虽然名字不同,但是是一个数据库,共用标签值。一个音乐播放器:播放背景音乐设置界面的逻辑设计设置界面共四个逻辑块。任务相对较为简单:Settle 回压函数:返回到主菜单界面。Settle 初始化函数:根据微数据库中标签“ music ”的值,决定是否播放背景音乐。同 时设置 musicButton , soundButton 的图片值。按钮点击事件:两个按钮分别转换标签“ music ”,“ sound ”的值,从而达到点击一次,进行开关的效 果,每次点击后,都要更新微数据库的标签值( 1 表示允许播放, 0 表示不允许播放),以 供其他界面使用。 同时更新按钮的图片值, 使之符合设置意图。 同时更新当前页面的音乐播 放设置。排行榜界面的设计排行榜界面的效果预览图排行榜界面的控件设计此界面所用到的控件有:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论