Scratch编程实战 之 弹网球游戏

网友投稿 2019-11-26 11:15

Scratch编程实战之弹网球游戏

前几篇文章了老冯叔叔已经讲了Scratch编程入门的方方面面,详见玩转Scratch文章系列,想必大家都已经迫不及待地想一试身手!好,我们现在就开始进入实战阶段。

弹网球

上一篇我们讲了投篮球的例子,不知道大家亲手试验的结果如何?这篇文章里我们讲一个弹网球的例子,例子中,下面有一块触板左右浮动,上方有12只小甲虫是网球要弹击的目标,网球弹中全部12只小甲虫后通关。就像下面视频中的样子:

图1.Scratch编程实战二-游戏效果

任务目标

  1. 实现一块左右浮动的触板,触板的位置跟随鼠标点击的位置;

  2. 一只网球,游戏开始时出现在合适的随机位置,网球触碰到四壁或触板均会反弹;

  3. 游戏中有12只甲虫,当网球弹到任何一只甲虫后,甲虫被消灭掉,玩家能够得到1分;

  4. 当12只甲虫都被消灭后,得到12分玩家获胜;

失败条件

当玩家左右移动触板,没有在合适位置接住网球,网球滑落,游戏失败

其他目标

  1. 游戏开始时,有开始游戏的提示

  2. 12只甲虫被消灭后,有获胜的提示

  3. 游戏失败有失败的提示

  4. 当一只甲虫被消灭时,能够有音效配合

任务分解

启动提示

  1. 设置游戏启动的提示,提示开始游戏,并且告诉玩家怎么玩--左右移动鼠标即可

  2. 利用绘制工具,选择转换为矢量图,选择T按钮,第一行写“开始游戏”,第二行写”左右移动鼠标控制触板“,字体颜色可以自定

  3. 编写代码,当绿色旗标启动按钮被点击时,展示提示页面1秒钟后,提示页面消失

https://cdn.china-scratch.com/timg/191128/11153MZ8-0.jpg图2.Scratch编程实战二-启动角色

触板

  1. 利用绘制工具,选择转换为矢量图,选择矩形按钮,画一个长方矩形,颜色自定

  2. 绿色旗标启动按钮被点击时,先隐藏1秒钟,目的是将屏幕留给启动提示界面,1秒钟后显示

  3. 运动功能板中,选择移动到鼠标位置功能,同时为了保证触板水平浮动,将其y坐标设置为一个固定值

https://cdn.china-scratch.com/timg/191128/11153SB7-1.jpg图3.Scratch编程实战二-触板角色

网球

  1. 在角色中,选择网球角色,同样,当绿色旗标启动按钮被点击后,隐藏1秒钟,1秒后显示,并移动到一个合适的随机位置,并选择一个下落角度

  2. 重复执行如下运动,每次移动10步,同时碰到屏幕四壁就反弹

  3. 设定失败条件,当网球落入屏幕以外区域时,广播”gameover"的消息

https://cdn.china-scratch.com/timg/191128/11153Q212-2.jpg图4.Scratch编程实战二-网球角色

触板触碰网球事件

  1. 回到触板角色,添加触板触碰网球的侦测事件,侦测到到事件后,广播 反弹的消息

  2. 回到网球角色,添加 当收到反弹消息后,设置反弹角度和移动步数

    https://cdn.china-scratch.com/timg/191128/11153R3c-3.jpg图5.Scratch编程实战二-触板触碰https://cdn.china-scratch.com/timg/191128/11153RX3-4.jpg图6.Scratch编程实战二-网球触碰

甲虫

  1. 新建角色,在角色中,选择Ladybug1,作为甲虫的原型

  2. 调整甲虫的大小和方向,大小自定,合适即可,方向选择180度

  3. 同样,当绿色旗标按钮被点击后,甲虫隐藏1秒钟,1秒后显示,为了每次启动后效果相同,这里需要重新设置甲虫的大小和方向

  4. 重复执行,当甲虫碰到网球后,播放Cymbal的声音,该声音持续1.1秒;

    同时,设置甲虫被撞击后的视觉效果,包括颜色特效,撞击后变小,撞击后倾斜等特效,这部分你会觉得还是很炫酷的

  5. 设置Score变量,作为几分工具,每撞击一个甲虫,积分+1

https://cdn.china-scratch.com/timg/191128/11153U3A-5.jpg图7.Scratch编程实战二-甲虫角色

复制甲虫

好了,我们现在已经有一只甲虫了,游戏中我们需要12只甲虫排成两排,每排6个

  1. 直接在甲虫角色上,右键单击,选择复制,就会复制出一只甲虫,如此操作11次,12只甲虫就出现了

  2. 调整甲虫的位置,使之排列整齐,老冯在这里,将两排甲虫的y坐标分别设为107和44,两只甲虫的x坐标间隔设置为70

获胜界面

  1. 利用绘制工具,选择转换为矢量图,选择T按钮,输入“You Win"

  2. 绿色旗标按钮被点击后,先隐藏,将Score变量清零,然后等待Score到达12分的事件

  3. Score到达12分后,该角色进行显示,广播”win“消息,同时播放Win的声音(Win声音文件在声音库中存在),最后停止全部脚本

https://cdn.china-scratch.com/timg/191128/1115391H7-6.jpg图8.Scratch编程实战二-获胜角色
https://cdn.china-scratch.com/timg/191128/11153a3R-7.jpg图9.Scratch编程实战二-获胜角色代码

失败界面

  1. 利用绘制工具,选择转换为矢量图,选择T按钮,输入“Game Over"

  2. 绿色旗标按钮被点击后,隐藏

  3. 当接收到”gameover"消息时(还记得吗,“gameover”消息是网球落到屏幕外面发出来的),显示该界面,同时播放Lose声音文件,然后停止全部脚本

https://cdn.china-scratch.com/timg/191128/1115393257-8.jpg图10.Scratch编程实战二-失败角色
https://cdn.china-scratch.com/timg/191128/1115396135-9.jpg图11.Scratch编程实战二-失败角色代码

其他说明

为了达到更好的效果,当触板网球收到wingameover的消息后,均进行了隐藏处理

还等什么,赶快亲自动手试试吧,自己动手的游戏就是乐趣十足!

--end--

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