当前位置:   article > 正文

appinventor飞机大战案例_瓢虫快跑 APP Inventor 案例 玩自己做的游戏 其乐无穷

appinventor 案例

最近和大宝一起学习探索这款APP Inventor,面向手机的编程软件.

游戏主要实现的功能:

玩家通过倾斜设备来控制瓢虫移动;用屏幕上的指示条来显示瓢虫的生命值,生命值会随时间减少,当生命值为零时,瓢虫会因饥饿而死亡;瓢虫追逐并吃掉蚜虫来提高生命值,抵御饥饿;瓢虫要尽量躲避青蛙,当瓢虫与青蛙发生碰撞时,瓢虫死亡。

所用到的素材列表(图片来源于百度):

蚜虫, 青蛙,瓢虫(活的),瓢虫(死的)(这里我运用了颜色来区分活的和死的.)

所使用到了软件内容:

使用多个精灵组件,并检测它们之间的碰撞;使用方向传感器组件检测设备的倾斜,并借此来控制精灵的移动;改变精灵所显示的图片;在画布组件上画线;用计时器组件控制多个事件;用变量来记录数值(瓢虫的生命值);创建和使用带参数的过程;使用“并且”块。

组件清单:

操作步骤如下:

设计瓢虫的运动,具体如下图所示.在设计视图中创建一个画布,命名为竞技场,并设置其宽度为“充满”,高度为300像素;在竞技场上放置一个精灵,命名为瓢虫,并设置其图片属性为活的瓢虫图片。

瓢虫的运动由方向传感器来控制,通过检测设备的倾斜幅度,来决定运动的方向及速度;计时器与方向传感器配合使用,来决定瓢虫对设备方向改变的敏感度。计时器的计时间隔为10毫秒(每秒100次),每隔10毫秒,检测一次设备的倾斜幅度,并相应地改变瓢虫的运动方向及速度 。

2.生命值的显示

利用第二个画布组件绘制红色指示条,来显示瓢虫的生命值,线条高度为1个像素,宽度为瓢虫的生命值,取值范围从200(健康)到0(死亡)。

两次调用绘制线条过程:第一次用来擦除旧线(覆盖整个画布宽度的白线),第二次用来显示新的生命值.

3.瓢虫因饥饿而死

如果瓢虫吃不到足够的蚜虫,或者被青蛙吃掉,则游戏结束。

在瓢虫移动的过程中:

让瓢虫的生命值递减(生命值 = 生命值 - 1);显示新的生命值(调用显示生命值过程);如果生命值为0,则调用游戏结束过程。

4.添加蚜虫

即让蚜虫在竞技场上移动。如果瓢虫撞上蚜虫(视同“吃”掉它),则瓢虫的生命值升高,而蚜虫消失,稍后会再次出现。

计时器每发生一次计时事件(每秒钟100次)都将调用移动瓢虫及移动蚜虫过程。移动蚜虫过程首先生成一个介于0到1之间的随机数,例如0.15,如果该数<0.20(在20%的时间里),蚜虫将改变方向,改变的角度为0到360之间的随机数;如果该数≥0.20(在其余80%的时间里),蚜虫方向保持不变。

5.瓢虫吃掉蚜虫

每次调用吃掉蚜虫过程,变量生命值增加50,这缓解了瓢虫的饥饿。然后,设置蚜虫的可见及启用属性均为假,看上去像是消失了。最后,随机生成x、y坐标,并“让蚜虫移动到指定位置”,这样,蚜虫会在一个新位置再次出现(如果留在原地,它一出现就会立即被吃掉)。

6.蚜虫的回归

最终蚜虫要重新出现,按图5-14所示修改吃掉蚜虫过程:仅当蚜虫可见时,令其改变方向(改变一个不可见的蚜虫岂不是浪费时间);若蚜虫不可见(如刚刚被吃掉),将有1/20(5%)的机会重新出现,或者说会被再吃掉。

7.模拟多个蚜虫的出现

创建重新开始按钮的点击事件处理程序,代码如图5-15所示:

设生命值为200;重新启用蚜虫并使其可见;重新启用瓢虫,并将其图片改为活的瓢虫

到目前为止,让瓢虫活着并不难,因此我们需要一个捕食者。就是说我们要添加一个奔向瓢虫的青蛙,如果它们之间发生碰撞,则瓢虫被吃掉了,游戏结束。

8.青蛙追捕瓢虫

修改瓢虫触碰事件处理程序,如果瓢虫与青蛙碰撞,则生命值及其指示条都将变为0,且游戏结束

9.瓢虫回归

在重新开始按钮的点击事件中,已经用程序将死瓢虫图片替换成了活瓢虫的图片。现在,需要添加代码将瓢虫随机地移动到某个位置。

10.添加音效

在设计视图中添加一个音效播放器组件。设置其源文件属性为已上传的声音文件frog.wav;进入编程视图,做如下操作:在吃掉蚜虫过程中添加“让音效播放器1振动”块,参数为100毫秒,以便在蚜虫被吃掉时,设备产生振动;在瓢虫的触碰事件处理程序中,调用音效播放器1的播放功能,代码位置在调用游戏结束之前,以便当青蛙吃掉瓢虫时发出叫声。好了,到目前为止,一款超级好玩的通过倾斜手机来控制瓢虫吃掉蚜虫或是躲避青蛙的游戏就完成了,你也可以试下自己制作游戏自己玩哦.

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/405958
推荐阅读
相关标签
  

闽ICP备14008679号