本节课我们将尝试创作一款弹力小球游戏,玩家移动弹板,使得小球不断的撞击顶部。
如上图,小球的起点在舞台的上方,然后以随机角度向下移动,碰到舞台的边缘就会反弹。玩家使用鼠标水平移动反弹板,将小球重新弹回去。如果小球碰到了舞台底部,游戏就结束。
接下来,我们分步实现这个游戏。
1、首先第一步,新建项目
选择菜单栏文件—>新作品,创建新作品后将用不到的猫咪角色删除。
2、添加背景和角色
背景的样式将影响小球碰到舞台底部的检测,怎么就算小球碰到了舞台底部呢?我们可以在舞台底部做一个颜色标记,然后碰到颜色?侦测积木指令来检测小球是否碰到了标记的部分。
当前背景是白色,所以,我们在舞台底部画了一条粉色的矩形区域。点击舞台背景区,然后切换到背景标签页,然后绘制粉色填充的矩形。
准备好背景后,添加小球和反弹板角色,小球角色可以直接从Scratch自带的角色库添加Tennis Ball角色,反弹板则需要绘制。点击角色区的绘制按钮,绘制一个反弹板。反弹板也是一个矩形,绘制方法和上面绘制背景中的粉色矩形类似,注意将矩形中心移动到画布的中心。然后给反弹板命名为“Paddle”。
3、编写代码,让角色动起来
我们设计这个游戏的启动方式是当点击舞台区上面的小绿旗按钮的时候启动游戏,所以应该使用“当绿旗被点击”事件积木指令触发游戏开始。
首先给反弹板角色编码
上述脚本程序,首先初始化反弹板的位置是x坐标是0,y坐标是-120。然后重复执行,设置反弹板的x坐标,而反弹板的x坐标取值是鼠标的x坐标,这样,反弹板就可以一只跟随鼠标在水平方向移动。
接下来编写小球的脚本程序。首先初始化小球并让小球移动起来。脚本程序中在……和……之间取随机数可以让小球面向随机的方向。然后重复的移动12步,如果碰到舞台边缘则反弹。
接下来,让小球在反弹板上反弹。在上一步的脚本程序中进一步编写。
我们在原有移动以及碰到舞台边缘反弹的过程中添加了一个条件判断,如果小球移动过程中碰到了反弹板,那么就调整面向的方向,方向的值取得是-30到30之间的随机数。-30到30之间的数值对应到Scratch方向中都是向上的,所以,小球就可以被向上反弹回去。
4、编写程序终止脚本程序
游戏设计之初,我们想要小球在碰到舞台底部的粉色区域后结束游戏,所以,我们还需要进一步编程。我们需要判断小球什么时候就碰到了舞台底部的粉色区域,所以,我们肯定需要一个“如果…那么…”的积木指令,而判断的条件就是侦测是否碰到颜色粉色?,如果是那么就停止全部脚本。
想一想,这个脚本块应该添加到哪里呢?没错,也应该添加到小区移动的过程中,也就是重复执行循环体内部。
5、添加声音,让游戏更有趣
最后,我们来添加一个音效,让小球每次碰到反弹板的时候都发出pop音效。首先需要选择小球角色,然后切到声音标签页,此时声音列表已经有了一个pop音效文件。切回代码标签页,在判断小球碰到反弹板的分支路径中添加播放声音积木指令。
好啦,至此弹力小球的游戏就编写完成了,赶紧测试一下吧。如果测试没有问题,那么恭喜你,完成这个游戏的创作啦!给自己点个赞吧