Scratch教程(九)——打砖块游戏

网友投稿 2019-11-28 10:50

前言

有一段时间没有更新Scratch教程,一来是孩子开始学习Python编程,在解决实际问题的时候毕竟Scratch这种玩具式的语言还是很难胜任的;二来是由于学校一直推行的是logo语言编程。不过这种状况已经改变,从今年开始,学校终于打算开设Scratch课程,对于初学计算机的同学而言,这种玩具式的语言在训练学生们流程化、逻辑化思维方面还是有一些用处的,但也由于这种语言本身的特点,决定了在实现某些功能时,必须采用一些独特的方法。这次课程以一个“打砖块”的小游戏来讲解Scratch在角色选取、克隆体、广播消息、随机数等方面的一些应用,请同学们跟着教程一步步来,自然能实现自己的小游戏,同时可根据个人的喜好对相关的角色进行修改,甚至对游戏进行扩充等等。先来看一下效果:

https://cdn.china-scratch.com/timg/191130/10505W3J-0.gif


“打砖块”游戏逻辑

打砖块的小游戏对于许多同学来说是熟悉的,这个小游戏的逻辑如下:1、添加挡板、小球、砖块等角色;2、设置挡板随鼠标移动;3、设置小球不断运行,在遇到挡板时反弹;4、设置砖块被小球击中时消失,并克隆下一个砖块;5、设置计分;6、判断游戏结束(以小球低于档板为游戏结束)。

https://cdn.china-scratch.com/timg/191130/10505V4O-1.jpg


添加角色

这几种角色都可以在角色库中选取,当然也可以自己绘制,这里选取的角色如下图所示:

https://cdn.china-scratch.com/timg/191130/10505R941-2.jpg

设置档板随鼠标移动

这个小游戏中,我们只需要档板在某个高度左右移动即可,这就需要设置其在跟随鼠标移动的同时,固定其纵坐标。代码块图如下:

https://cdn.china-scratch.com/timg/191130/10505912S-3.jpg

小球的移动

在游戏开始的时候,我们要给小球一个初始角度,这个角度在这儿选取的是0~60度,即向右上方移动,之后就重复执行移动,在这个循环体中进行三种检测:
一是检测是否碰到档板,在碰到档板时让小球反弹,这就需要设置反弹角度为180度-小球原方向;二是检测是否碰到边缘,这个有现成的模块——“碰到边缘就反弹”;三是检测小球是否向下越过了档板,这是游戏是否结束的检测。
小球的代码块图如下:

https://cdn.china-scratch.com/timg/191130/1050594204-4.jpg

砖块的克隆及克隆体检测

为了方便砖块的生成,我们在这里采用砖块的克隆体,在最初时,先克隆一个,再将本体隐藏,之后以克隆体本身来检测是否被小球碰到,如果碰撞了,就再克隆一个自己,同时将自己删除,代码块图如下:

https://cdn.china-scratch.com/timg/191130/10505a201-5.jpg

计分

为了计分,需要新建一个变量,在砖块的克隆体被小球击中时,该变量增加1,关于这一点,在砖块的代码块图中已经有显示,请同学们留意。

游戏结束

当小球向下运动低于档板时,发出广播消息“GAME OVER",在我们自己创建的gameover角色代码中检测该消息,当其收到游戏结束的消息时,显示该图片以表示游戏结束,代码图如下:

https://cdn.china-scratch.com/timg/191130/10505a5O-6.jpg

小结

本文对于“打砖块”小游戏进行了仔细讲解,这个小游戏的设计并不难,只不过其中涉及克隆体的部分要同学们仔细揣摩,克隆体在创建出来后,可以在某些情形下等同于角色来操作,这一点是要注意的。

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com