scratch趣味编程弹球(少儿编程Scratch实例9挡板弹球游戏)(1)

今天我们将完成一个挡板弹球游戏。

scratch趣味编程弹球(少儿编程Scratch实例9挡板弹球游戏)(2)

00 软件分析

需求说明:

编写一个游戏程序,从屏幕上方落下弹力球,碰到舞台左右墙壁时,或挡板时,球按照现实世界的物理规则弹跳。落到舞台底部地面时,游戏结束。挡板随着鼠标的移动而左右移动,玩家控制鼠标移动以便不让球落到地面上。记录挡板接住球的次数,和玩家的游戏时间。

需求分析:

  1. 需要至少两个角色,球和挡板;
  2. 鼠标控制挡板左右移动,但在上下方向固定不动;
  3. 球以随机的角度向下方移动,角度值、速度值待定;
  4. 球碰到墙壁、挡板就反弹;
  5. 球碰到舞台底部,程序终止
  6. 球碰到挡板,得分加1
  7. 程序开始后,开始计时,程序终止时,停止计时
01 添加角色

按照上面的分析,添加球和挡板两个角色。

1、如图点击添加角色图标,选中【选择一个角色】

2、然后在角色库中选中“Ball”。重复该操作,再从角色库中选中“Paddle”,作为挡板。当然,你也可以选中自己喜欢的角色。

3、删除不需要的默认角色1。

scratch趣味编程弹球(少儿编程Scratch实例9挡板弹球游戏)(3)

02 调整角色的大小

将角色调整到合适的大小。我将球调整到70,挡板调整到80。

scratch趣味编程弹球(少儿编程Scratch实例9挡板弹球游戏)(4)

03 更换舞台背景

按照你自己的喜好,将默认的舞台背景替换成合适的背景图。

简单起见,我使用默认的白色背景图。

04 创建变量

提前建立两个变量,接球个数和游戏用时,方便后续使用。

scratch趣味编程弹球(少儿编程Scratch实例9挡板弹球游戏)(5)

05 给挡板编程

挡板的逻辑比较简单,需求列表中“跟随鼠标左右移动”适合放在挡板角色中实现,但是,挡板接住球得分之类,初步分析可能放在球角色的代码中更合适一些。

scratch趣味编程弹球(少儿编程Scratch实例9挡板弹球游戏)(6)

06 给球编码

球角色的编码要复杂一些,主要包括以下内容:

1、通过“计时器”完成游戏用时的逻辑;

2、程序开始执行后,初始化变量,将变量设置为0;

3、设置球运动的起始位置和起始角度,我们将球的位置设置在舞台顶部中央,或者,你也可以将球放置在舞台顶部的任意位置(思考下如何修改代码)。球的起始运行角度限定在一个范围内,随机取值;

4、将球运动的逻辑放在一个“无限循环”之内,每次移动5步。可以通过修改这个值,改变游戏的难度;

5、[碰到边缘就反弹],这个积木很重要,正是它才使得球碰到舞台的左右和上面边缘时可以自动的转移方向;

6、不停的监控球是否碰到挡板,如果碰到,则给得分加、播放一个碰撞音效。

7、更重要的是往上方反弹,起初我考虑应该参考真实的物理原理来设置球反弹的角度(回弹角度等于下落),可是这样做了后才发现,球的运行轨迹变得很机械,所以,最终改成了现在这样的在一个范围内取随机的反弹角度。

scratch趣味编程弹球(少儿编程Scratch实例9挡板弹球游戏)(7)

点击查看大图

上面的编码还有几个值得注意的地方:

1、同一个角色中可以使用多个(当被点击] 积木,这样可以实现两段逻辑被同时执行

2、上面用到两个“侦测类”积木,得到 (鼠标的x坐标) 和判断挡板是否 <碰到 Ball ?> 角色。经常查看侦测类积木,也许就会发现你很有用的功能。

另外,在刚才的编码过程中,发现一个Scratch 3.0新增的小技巧,在这里特别拿出来和大家分享。

添加 [面向___方向] 积木,当鼠标进入输入框后,输入框下方会出现一个类似于时钟的圆盘,它实时显示输入框中方向值在界面上的实际指向,同时可以通过这个圆盘上的指针设置输入框的值。这种操作真实太直观了!!

scratch趣味编程弹球(少儿编程Scratch实例9挡板弹球游戏)(8)

更多关于“方向”的知识可以查看历史文章《Scratch运动积木》的第2部分。

07 补全游戏失败的逻辑

上面球角色的代码还缺失球落到舞台底部的逻辑,这时游戏失败并终止。

检查球是否落在舞台底部,有若干种方法,比如:

我为大家演示第1种方法的代码,后两种可以作为课后练习。

scratch趣味编程弹球(少儿编程Scratch实例9挡板弹球游戏)(9)

上图设置“y坐标<-150”的原因是:横版固定在-150位置。所以,低于它时,表明球已经接不住了,也就是失败了。这时候 [停止 全部脚本 ] ,就会停止两个变量“接球个数和游戏用时”的计数,球的移动,以及挡板随鼠标移动。

08 完工!运行程序

至此,我们完成了“需求说明”中的全部内容。

点击舞台左上角的小旗子运行程序,看看效果吧。

scratch趣味编程弹球(少儿编程Scratch实例9挡板弹球游戏)(10)

附加练习

tag:#Scratch编程、#少儿编程、#儿童编程、#趣味编程、#青少年编程、#软件编程

scratch趣味编程弹球(少儿编程Scratch实例9挡板弹球游戏)(11)

,