Scratch编程教程-墙壁传感器
墙壁传感器
墙壁传感器常用于平台游戏中。它们由四条线组成,两条垂直线和两条水平线,固定在玩家精灵的左侧、右侧、顶部和底部。当传感器检测到与墙壁的接触时,会广播一条消息,告诉玩家精灵反转其当前速度,使墙壁偏转玩家精灵的路径。
编程传感器组
在制作墙壁传感器之前,玩家精灵必须使用速度来增强运动的真实性(包括重力速度)。
- 复制玩家精灵。
- 清除所有脚本和造型(除了空闲造型)。
- 编辑空闲造型。在造型的每一侧(左侧、右侧、顶部和底部)绘制四条不同颜色的线。
- 清除原始造型。结果应该是四条彩色线。
- 在墙壁传感器精灵上编写以下脚本:
白色应该是传感器的颜色(左、右、上或下)。
黑色应该是墙壁的颜色,或者是玩家不能通过的颜色。
括号()应该替换为其检测到的方向(上、下、左或右)。
为每个传感器重复此步骤,共四次。
在玩家精灵上编写以下脚本:
另一种简单的方法是直接移动代替广播块。这仅在变量是全局的并且可以被任何精灵访问时才有效。
如果操作正确,玩家精灵应该能够从墙壁上弹跳,并在跳跃并触碰到平台的底部时停止。
工作原理
该方法使用颜色来检测精灵是否碰到墙壁,以及从哪个方向碰撞,并作出相应的反应。它还利用了渲染速度不是瞬间的事实,使得精灵能够在切换到“感知造型”和切换回来时对用户几乎没有察觉的影响。
无传感器组
这第三种方法不使用“感知造型”,但要求在所有感知中使用恒定的造型。
工作原理
该方法通过在沿一个维度的每次移动之后检查是否接触到墙壁来解决颜色感应的问题。例如,如果精灵向右移动,然后检查是否接触到墙壁。如果接触到墙壁,则知道右侧是墙壁。