APP下载

Scratch小猫弹簧床

2020-11-16

电脑报 2020年41期
关键词:纵坐标代码加速度

游乐园的弹簧床你有没有看到过,小朋友在弹簧床上跳来跳去,弹簧床会根据跳起的高度反馈一个向上的力,之后反馈的力就会慢慢变小。今天我们就用Scratch来模仿一下弹簧床吧。

一、需求分析

弹簧床的反弹效果和之前我们讲过“打砖块”的反弹效果不同,“打砖块”小球的速度是匀速的,但是弹簧床就用到了上期我们讲到的重力加速度——下落的时候逐渐加速,遇到弹簧床后,下落速度逐渐减小到0,然后反弹加速上升,离开弹簧床后上升速度逐渐减小到0,又重复开始下降过程,并且弹簧床恢复水平。

为了表现弹簧床受到压力向下凹陷的效果,当小猫向下跳时,弹簧床需要有一个明显的形变过程,并且这个变形需要与小猫的下落同步。

因此程序难点包括需要解决弹跳过程中的速度变化,判断角色何时碰到弹簧床,弹簧床要随情况变形。

二、弹簧床代码

我们就用画笔来绘制弹簧床。设置颜色(粉色),笔的粗细(6),画笔从左侧(-240,0)落笔画到右侧(240,0)抬笔,这样一条直线就来了。

为了实现弹簧床受到小猫下压后形变的过程,我们在弹簧床的中间增加一个途经点,这个点的坐标就是小猫的脚下,需要在小猫造型中将角色中心移到小猫脚下。

还需要注意,当小猫的纵坐标小于0的时候才产生形变,纵坐标大于0不形变,还是画直线(图1)。

当小猫y坐标小于0时,画笔从左侧(-240,0)落笔画到小猫角色的(x,y)坐标,再画到右侧(240,0)抬笔(图2)。

弹簧床代码(图3):

三、小猫代码

小猫的弹跳过程与自由落体中的小球类似,只不过加速度是逐漸变化的。

设置小猫的大小,起始位置,旋转方式为不可旋转。设置初始方向(面向0°方向)。新增变量“速度”用于控制小猫下降和反弹的速度。由于重力加速度的原因,当向下掉落的时候速度是越来越快的(速度负数表示向下,速度正数表示向上),当小猫碰到弹簧床的时候就产生一个反弹力,用直线的颜色判断是否碰到弹簧床。速度的快慢是由速度绝对值来决定的(图4)。

当我们将程序编写完运行之后,就可以看到弹簧床的效果,之前的三点需求都已经解决了。

我们还可以在此基础上添加功能,比如通过左右键和空格,控制小猫在弹簧床上表演一些杂技……

猜你喜欢

纵坐标代码加速度
平面直角坐标系中的特殊点
平面直角坐标系中“混”“漏”要不得
走出“加速度”理解的误区
神秘的代码
加速度新题型精析
一周机构净增(减)仓股前20名
重要股东二级市场增、减持明细
设动点坐标 让动点不动
近期连续上涨7天以上的股
向心加速度公式推导