初级篇——小猫抓球
【疑惑篇】
点击绿旗按钮,棒球在舞台上随机出现,每隔几秒钟随机更换位置。通过上下左右键控制小猫移动去抓棒球。
想一想: 可以有几种方式实现?如何让小猫抓到球后让球立即消失?
【线索篇】
案例分析
它们发生的场景是什么?
每个场景中有哪些角色?
每个场景中的每个角色在做什么?
棒球
- 点击绿旗按钮,移动到舞台随机位置
- 等待几秒钟,移动到舞台另一个随机位置。
- 重复第2步
小猫
- 按下上下左右任意一个键,小猫朝相应方向移动。
- 如果小猫碰到棒球,发出声音并说话。
积木提示
【解决篇】
首先,还是新建一个项目,添加我们需要的背景,Xy-grid-30px。
接着,把用到的角色添加进来,一个Cat2,一个Baseball。
第三步,用指令积木来实现游戏。
棒球
1.点击绿旗按钮,移动到舞台随机位置
点击绿旗按钮相信你已经非常熟悉了,在这里你需要思考的问题是,如何让小猫移动到随机位置?
其实很简单,在运动分类中有一个移到([随机位置])积木,参数选择随机位置,它就会让角色移动到舞台中的某个随机位置。
我想请你思考一下,还有没有别的方式可以实现?
在之前的案例中你已经知道了,角色的位置是由它的属性坐标值决定,那什么是随机位置呢?就是随机的x坐标和y坐标值,所以现在你的问题就变成了如何获得随机的x坐标和y坐标,然后将它移动到这个新位置?
还记不记得在(1)和(10)之间取随机数积木。想要获取随机的x坐标,只需要将积木参数设置为舞台的x坐标范围。想要获得随机的y坐标,只需要将积木参数设置为舞台的y坐标范围。为了避免棒球移到舞台外面,你可以将参数的舞台的范围适当缩小。
获得随机的x坐标和y坐标后如何移动小猫?是不是使用移到x:(0) y:(0)积木就可以了。
2.等待几秒钟,移动到舞台另一个随机位置。
棒球移动到新位置以后,需要让它等待几秒钟,让小猫有时间过去抓它。
如何等待?
是不是使用等待(1)秒积木。
等待多久?
你可以设置为固定值,也可以使用在(1)和(10)之间取随机数积木获取一个随机的时间值。
等待之后,小猫再像第一步一样,移动到新的随机位置。
- 重复第2步
最后一步,小猫需要不停的移动,是不是使用重复执行积木让它重复移动、等待就可以了。
小猫
1.按下上下左右任意一个键,小猫朝相应方向移动。
接下来轮到小猫,它的移动和棒球不一样。它是在方向按键被点击之后才会移动,因此小猫指令的启动事件就不再是当绿旗被点击积木,而是当按下[空格]键积木。
当上下左右某个按键被点击后,小猫做了什么?
是不是将方向改变为按键对应的方向,例如,按左键小猫朝向左边,按上键小猫朝向上面。如何做?是不是使用面向(90)方向积木调整小猫的方向值就可以了。还记不记得上下左右的方向值各是多少?
接下来,小猫除了方向改变,是不是还会往对应的方向移动,如何做?
最简单的方式就是使用移动(10)步积木,让它直接朝着面向的方向移动。
还有没有别的方法呢?
别忘了移动就是修改坐标值,左右移动修改x坐标,上下移动修改y坐标。所以只要使用将x坐标增加(10)积木和将y坐标增加(10)积木修改对应的坐标值就可以了。
在这里,你还是可以停下来思考一下,这两种移动方式有什么区别?
移动(10)步积木是不是需要配合面向(90)方向积木一起使用。必须先改变小猫的方向,再让它移动10步。
将x坐标增加(10)积木和将y坐标增加(10)积木是直接通过修改角色的坐标让它移动。因此,即使没有面向(90)方向积木,小猫也可以正常移动,只是它会永远面朝一个方向。
你可以自己将面向(90)方向积木删掉以后,体会一下它们的区别。
2.如果小猫碰到棒球,发出声音并说话。
接下来,你要控制小猫去抓住棒球。如果小猫抓住棒球,那么它就会叫一声,并且说“抓到了”。
是不是需要使用如果<>那么积木进行判断。在该积木里面使用播放声音([喵])播放角色默认的猫叫声,接着使用说(你好!)(2)秒积木让它说话。
现在只差如果<>那么积木中的放入判断条件。你怎么知道小猫有没有抓住小球?
在侦测分类中有一个碰到([鼠标指针])?积木,它是用来判断当前角色有没有碰到参数所选的某样东西,碰到了返回true,没有碰到返回false。它的参数有三种选项,鼠标指针、舞台边缘和角色名称。
在这里就可以将该积木放入如果<>那么积木的判断条件中,参数选择棒球名称Baseball。现在如果小猫碰到了棒球,那么小猫就会播放声音和说话了。
完成这个案例后,同样我想留给你一个扩展思考。如果你自己看过侦测分类中的积木,会发现里面有一个按下([空格])键?积木。它和事件分类中的当按下[空格]键积木一样,可以用来判断当前哪个按键被按下。请你自己试一试能不能改用它来做按键判断,控制小猫向对应的方向移动,实现后比较一下它们之间有什么区别。
想看更多学习案例,欢迎点击查看《Scratch 3学习手册》open in new window
想要获取所有案例源码和素材,以及获得我对你在学习中所遇问题的一对一解答,欢迎加入石头解忧杂货店。