第2节快乐打鼹鼠——HappyKick
本节概要:
本章将通过HappyKick的课例,介绍新组件canvas、ImageSprint,在后续中添加计时器组件。围绕canvas的点击事件,配合一些常用控件,达到打鼹鼠的游戏效果,为了让游戏更有趣和耐玩性,增加了生命值和血条等参数。通过学习本节,让学生明白,做一个安卓小游戏,也是一件很简单的事。
学习要点
●熟悉canvas、ImageSprint组件
●熟悉计时器组件
●设置自变量来显示血条
认识新组件
表3-2-2 :Image组件与ImageSprint组件的异同点
实例探究: HappyKick
图3-2-3:程序界面1 图3-2-4:程序界面2
界面设计与组件构成:
图3-2-5最终UI界面
组件的拖放和设置
图3-2-6
图3-2-4所示。界面主要涉及到的是第一次用都的canvas组件,ImageSprit、Clock组件,拖曳。
组件清单:2个canvas,1个图片精灵 2个水平布局组件,垂直组件目录
Block块编程拼接搭建
要实现课例的需求,则需要用block编程实现以下几个问题:
○1鼹鼠的点击事件
学生首先会想到的是Imgs_BeCatch(鼹鼠图)的单击事件,这样想是情有可原的,但是我仔细再思考一下,Imgs_BeCatch的
Click事件能够表示被抓到,那么没有抓到的情况呢?
所以综合考虑从之后,我们还是要从canvas下手,从canvas的touched事件下手,在单击时是不是碰到了Imgs_BeCatch(鼹鼠图),这是一种不一样的思维角度。
图3-2-6
○2鼹鼠的移动事件
疑问:怎样移动?
之前,关于改变在app中组件的位置,我们之前一直没有尝试过,而作为动画主角的图片精灵,小鼹鼠也应该是变换着位置,这里会用到数学的随机函数(在游戏类里,随机数可以产生变化,增加趣味性)。所以通过随机数,让鼹鼠改变位置,这是课例的一个基本解决方案
提问:为了让鼹鼠能够完整的出现在屏幕里,随机产生的位置需要什么样的设置?
canvas动画数学的随机函数random(n,m):在n~m之间产生一个随机整数。
随机数最大宽度 =画布宽()-图片精灵的宽。同理得到最大高度。
图
3-2-7
对应的代码块图
3-2-8:
这样打地鼠的基本的思路就有了,现在我们只要把它加入到计时器组件,让它定时变换位置就可以了。
图组:3-2-9计时器组件事件(clock )
○
3血条与生命的制作 使用自定义变量 life 和nowlife 分别定义为最大生命值和当前生命值,初始值为5。
再拖入一个canvas 组件放在canvas1的下方,高度设置为10,背景设置为红,利用其width 的属性改变大小。
思考:生命值的计算公式怎样才合适?
画布(canvas)的宽 = 屏幕的宽×(当前生命nowlife / 最大值life)
根据相应的预设,我们拼接得到了Canvas1的touched的完整事件模块。
○4Canvas1的touched
当我们重新开始时,需要满血复活,模块如下
完整:
代码解读:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论