弹跳的篮球
这篇文章会介绍,如何在 Scratch 里使用变数、重复无限次、逻辑判断、碰撞边缘、位置改变...等积木,实作篮球自由落体,碰撞到地面弹跳的效果。
角色设定
在角色编辑区,删除猫咪角色,加入“篮球”角色 ( 参考:Scratch 角色设定 )。
积木程序原理
首先实作“自由落体”的加速度程序,先放入两个变数,一个叫做“移动距离”( 默认 0 ),一个叫做“加速度”(默认 -1 ),接着使用重复无限次积木,移动距离根据加速度而不断改变,篮球的 y 座标根据移动距离不断改变。
透过标准的加速度距离公式 ( S = V0t + ½gt² )可以知道“篮球每单位时间内移动的距离会越来越长”,所以积木是透过比较简单的方式呈现。
点击绿旗,就能看到篮球以“等加速度”的方式落下。( 下图表现等加速度和等速度的差异 )
在舞台区,用鼠标将篮球移动到底部,纪录篮球贴近底部的 y 座标。( 范例是 -158 )
修改程序,加入“碰到边缘”的逻辑判断,判断如果碰到边缘,就让移动距离乘以 -0.8,这样就能反转 y 方向的移动并模拟越跳越矮的效果,同时为了避免超过范围,额外设定 y 为 -158,如果没有碰到边缘,就按照正常的等加速度移动。
因为移动距离是乘以小数点,所以在接近边缘时可能会有一些细微的跳动,如果要修正这些跳动,可以加入移动距离的判断,判断如果太小的移动距离 ( 表示篮球快要跳不起来了 ),就直接让移动距离归零。
完成效果
点击绿旗执行后,就会看到篮球自由落下,不断反弹后停止在地上。
范例解答
范例解答:弹跳的篮球
延伸练习
如果已经熟悉了弹跳的篮球的原理,还可以尝试更多好玩的作法:
微信扫码关注
抖音扫码关注