被圆圈困住的蚂蚁
不知道有没有玩过一个游戏,就是在地上或者是纸上画一个圈并将蚂蚁圈进去,然后就看着蚂蚁傻傻地在里面转圈。蚂蚁不敢走出这个圈圈,一直在圆圈边缘不停地试探,闻一闻、嗅一嗅就是不敢越过雷池一步。而当你再次缩小了圈圈的范围,在大圈里面画了一个小圈,企图逼迫蚂蚁冲出包围圈,可蚂蚁却始终走不出这个圈子。
很多人好奇为什么一个圈就可以困住蚂蚁,难道蚂蚁也知道不能踩线?对此很多人都以为蚂蚁是二维动物,看不到高度,所以不知道怎么过线。实际上完全不是这么回事,蚂蚁不敢过线只是因为他们的气味断了。
要知道蚂蚁辨别方向靠的不是眼睛而是依靠气味,当它爬行时会在地上留下气味,这种气味叫做信息素,就是靠着信息素它可以辨认回家的方向,可如果用含有特别味道的笔给蚂蚁画圈,就会影响到他们的嗅觉,让他们找不到回家的方向,没有方向自然就不敢乱走了! 另外粉笔画个圈也可以防止蚂蚁逃跑,因为粉笔中含有滑石粉。
今天我们就使用Scratch来创作《蚂蚁模拟器》,来模拟蚂蚁是如何靠着信息素回家的。
作品效果预览
作品的完整效果如视频所示:
接下来,我们就详细介绍作品创作的步骤。
蚂蚁动起来
打开Scratch编程软件,将准备好的蚂蚁角色素材导入到Scratch中,先让蚂蚁在舞台上运动起来,编写代码如下:
执行这段代码,蚂蚁就会沿着指定方向向前运动,当碰到舞台边缘就回不来了,需要加上“碰到边缘就反弹”指令吗?
不用,这一次试试使用其它方法吧,我们做一个让蚂蚁能感知到信息素的传感器吧。
给蚂蚁加上传感器
这里的传感器并不是指生产出来的电子传感器,而是指动物的感觉器,也就是感受光线或是声音等刺激的器官,触觉也是感受触觉的传感器。这里我们使用颜色来表示信息素,所以,可以给小蚂蚁加上感受颜色的传感器。
点击脚本区域左上方的“造型”选项卡,调整好颜色,使用圆形工具在小蚂蚁的前面绘制一个小红点,如图:
这个红点就作为小蚂蚁的传感器。需要注意,默认的蚂蚁造型是位图,可以先将其转换为矢量图,这样便于调整图片。
绘制信息素小路
接下来,我们就给蚂蚁添加一条信息素之路,这个可以使用背景来做,也可以使用角色来做,此处,我们选择使用角色。在角色列表区,点击“绘制”角色按钮,设置填充颜色为蓝色,去掉轮廓,将画笔粗细设置为30左右,运用画笔工具绘制一条曲线,如图所示:
沿着信息素小路来回走动
接下来,我们就可以继续编写蚂蚁的程序,使其沿着信息素小路走动了,在这里,我们假定红色的传感器遇到蓝色的信息素之路就算是找到信息素了,为了完成这个过程,需要使用侦测模块中的“颜色碰到颜色”之路,如图:
点击指令中的颜色部位,会打开颜色设置界面,如图:
我们可以在这里设置颜色,也可以使用颜色滴管工具,点击底部的滴管图标,就会自动选中Scratch舞台区域,并且有一个放大镜效果,移动鼠标,找到合适位置的颜色,点击一下,就可以设置好颜色了,如图:
如果小蚂蚁的传感器检测碰到了蓝色,就让蚂蚁右转15度,为了保证小蚂蚁能沿着小路一直走,一旦偏离了信息素,就让蚂蚁左转15度,也就是说,小蚂蚁一旦偏离小路,就立刻把它“拉回到”正确的方向,具体代码如下:
这种按照执行的结果来决定下一步的动作的方法叫做反馈控制。沿着线路走的机器人也是这样控制的,通常叫做巡线机器人。另外空调的恒温调节还有汽车的自动巡航都是按照这个原理来实现控制的。
我们可以再添加一个蚂蚁,分别放在线路的两头,点击绿旗之后,先等1秒,再开始移动,如图:
暂无评论内容