前段时间上课,用到了侦测模块里的一个条件语句,颜色A碰到颜色B。原本没有特别重视这个模块,讲课的时候也很简单的一带而过了。但是学生们实际应用的时候,问题出来了。主要出现了两个问题,第一个是颠倒了AB两种颜色的顺序,然后代码就不起作用了。第二个是当背景颜色和B颜色相同的时候会出现干扰,导致代码被意外执行。下面刨根问底,来仔细研究一下,两种颜色相碰到底是个什么情况。
1.回到2.0版本中去查看帮助信息
由于3.0中没有帮助信息。所以回到2.0版本中,查看了两种颜色相碰的代码帮助信息。
在帮助里面,我们看到The first color is within the sprite, while the second is from the background or another sprite.第一种颜色在角色里。第二种颜色在背景里或者其他角色里。看到这里就很清晰了。我们不能随意调动两种颜色的顺序。并且如果背景里有第二种颜色的话,那么这个条件也会成立的。
2.一定注意颜色顺序
在查看了帮助信息以后,可以确定,必须按照先选择角色自身的颜色,然后再选择目标颜色。如果第一种颜色没有在角色自身上,那么这个条件就不可能成立。
3.小心背景上的干扰色,会产生bug
如果使用了颜色相碰作为条件的时候,出现了额外的触发情况,比如说,还没有碰到目标角色,就产生了下一步结果。这个时候就要注意观察,是否目标颜色同时出现在了角色和背景上面。
比方说下面的情况,背景里面有红色,男孩角色也有红色,苹果也是红色的,在这种情况下,出现背景颜色触发的概率就比较大,这个时候如果出现额外触发的情况,直接更换背景或者更改目标颜色和背景区分开就行了。
scratch3.0小问题系列:
scratch3.0小问题系列(二)克隆体与本体的继承关系 - 简书
scratch3.0小问题系列(三)克隆体个数探究 - 简书
scratch3.0小问题系列(四)克隆模块下面的积木归谁所有 - 简书
scratch3.0小问题系列(五)造型中心点设定 - 简书
scratch3.0小问题系列(六)画图因边界导致变形 - 简书
scratch3.0小问题系列(七)填充工具与月亮光晕效果 - 简书
scratch3.0小问题系列(八)按键事件与按键侦测 - 简书
我是苏小糖,平时玩玩scratch、microbit和arduino。后续会推出更多相关文章分享给大家。喜欢的话就关注我吧。
网友评论