29 百米跨栏
1.课程回顾
1.1 距离侦测
该积木指令在侦测模块中,需要与其他指令嵌套使用。
可以用该指令判断到角色、鼠标等的距离。

1.2 连接符
运算模块中的连接符,可以将多个字符串进行连接。
能够在运算、条件判断、语句表达等多种场景中应用。
根据具体需要,可以将多个连接符进行拼接使用。

2.学习目标与任务
2.1 课堂任务
今天我们来做一个百米跨栏的游戏吧!
裁判小猫发出开始指令后,小狗狗就开始跑动了。它遇到挡在赛道上的小球就需要跨过它们。
每次到达舞台边缘时就返回继续跨小球。它玩儿的不亦乐乎呢!

2.2 作品分析
(1)舞台区一共有几个角色?
(2)每个角色的初始化状态是什么?
(3)小狗狗什么时候开始跑动?
(4)如何能让小狗狗跨过Ball?
(5)怎么保障小狗狗每次都下降的最低点都保持一致呢?
2.3 新积木指令
“与”“或”“非”运算符

我们可以看到“与”“或”“不成立”的两边,有菱形的空格,可以将菱形积木指令嵌入使用。
同学们来找一找,Scratch中有哪些是菱形积木呢?
并说出它们的具体含义吧。
3.编程思路与步骤
3.1 编程思路

3.2 编程步骤
(1)小猫裁判
初始化位置大小、说“预备开始”、广播消息、循环切换造型。让小猫动起来

(2)小狗移动
首先,我们给小狗设置初始化。然后,让小狗收到裁判发出的消息后就跑起来。
同时要判断,是否碰到小球,如果碰到小球,就让小狗后退。

(3)小狗起跳
我们让角色跳起来,其实就是让它的Y坐标发生变化。当按下空格键后,小狗的Y坐标增加。
但是,我们会发现,这样的话,小狗就是傻乎乎的向上跳。而且不能降落。

那我们来思考一下,如何让小狗按下空格键后上升,不按就降落呢?
按下空格键后,只要等于或大于初始高度,那么就将高度增加。同时只要比初始的高度高,那么就下降。
大家试一下,该把代码放在哪个位置呢?


4.问答与练习
1.小明发现当程序运行后,小猫也正常发出消息,但是小狗就是不移动,哪里出了问题呢?
下面是小狗和小猫的部分代码。


2.课后练习:增加一个程序启动按钮吧!“点击按钮,游戏开始!”