最新消息:380元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

Scratch教程:方向与距离

Scratch 少儿编程 4415浏览 0评论

友情提示:380元/半年,儿童学编程,就上码丁实验室

在本系列文章中,作者提出了对周围环境进行探测的“探测器”概念。

给出了探测器的多种分类,并进行了研究和说明。

 

总结

1基于角色运动的“位置探测器”

2基于大小的“尺寸探测器”

3基于不同造型的“造型探测器”

4基于颜色的“颜色探测器”

5“扫描探测器”

(点击以上文字,可阅读原文。)

 

上面这些探测器,无一例外地使用了碰撞检测,包括角色与角色的碰撞、颜色的碰撞等。但有的时候还是需要在非接触的情况下对环境进行探测。

 

方向与距离

今天我们就来讨论:

方向与距离
“非接触探测器”
 

在Scratch中,有一类的检测器是属于非接触的探测器。可以探测到某个角色的方向及距离,今天我们就对这类的方法进行研究。并命名为“非接触探测器”。

我们研究一下系统提供的积木,可以看到,有几个用于探测距离和方向的积木。

 

方向与距离

另一个是到鼠标或角色的距离,相当于探测了相对的距离。

方向与距离

  ② 一个是面向鼠标或另一个角色的面向,相当于探测了相对的方向

 

下面我们做一个有趣的小程序,演示一下这两个探测器的使用。


 事例 

小猫闯入了一个不很友好的箭头丛林,在经过丛林时,箭头会在一定范围内指向小猫。效果如下。

 

方向与距离

小猫可以跟随鼠标运动或以其它的方式运动。重要的是每个箭头可以在一定的范围内指向小猫角色。


 制作 

01

首先制作小猫的程序,简单地跟随鼠标运动。

方向与距离

02

下面是箭头的程序,使用克隆的方式生成多个角色。

方向与距离

其中mbClone还是用于判断是否是克隆体的标志,使用Y和X的循环,生成100个小的箭头。

03

 

下面是箭头克隆体的程序。

方向与距离

在克隆体生成后,就一直检查到小猫角色的距离,如果距离小于100,则指向角色,如果距离大于等于100,则面向默认的90度方向。


 分析 
这里面就结合使用了两种非接触式的探测器,一个用于判断到角色的距离,一个用于指向角色。

扩展:大家还可以考虑一下如何修改这个程序,比如在改变方向的同时根据距离改变角色的大小及特效;指向不同方向;增加位置的变化等。

方向与距离


 注意事项 
在使用“非接触式探测器”时,有几个方面需要注意。

1  需要注意所有的指向及距离计算,都是基于角色中心的,所以一定要保证正确设置角色的中心点。

2  与碰撞式的方式不同,即使角色处于隐藏的状态,这类探测器也能够正常工作,而且不受颜色及特效的影响。

3  如果想指向一个不存在的位置,可以使用“无中生有“的方式,参见之前的文章。

4  由于此方法只能够检测到某个角色或鼠标的方向和坐标,所以对于背景上的颜色变化等不会有反应。

 

 

总结

1  使用非接触式探测器,可以计算两个角色之间的距离及方向关系。

2  这样的探测器,可以模拟接近、引力、感知范围等效果。

3 使用下面这个积木,能够得到其它角色的方向及坐标。也可以算作非接触探测器。

方向与距离

 

 
 

您必须 登录 才能发表评论!