scratch少儿编程:《飞机大战》中,子弹为什么打不掉小飞机?

发布时间:2020年07月08日 阅读:129 次

《飞机大战1》中,大家都遇到了一个同样的问题:  

发射的子弹碰到迎面过来的小飞机,要么小飞机不消失,要么子弹不消失呢?  

可是,我们明明在代码里写了,当它们碰到的时候,它们是都要消失的。  

这是怎么回事呢?  

这节课,也就是《飞机大战2》,我们会重点解决这个问题。  

我先问了学生,这可能是什么原因造成的呢?  

多数人摇头,也有人说是软件的bug。  

是的,这确实是软件的bug,按照正常逻辑,既然写了代码,软件就应该执行。  

这个bug是什么呢?  

其实很简单,当子弹碰到小飞机时,应该加个等待时间,然后再删除克隆体;当小飞机碰到子弹时,也是同理。  

那么为什么非要加个等待时间呢?  

我给孩子们举了个例子,学生A代表子弹,学生B代表小飞机。  

老师板书时,坐在后边的学生B快速地打了一下A,A扭头看时,B一副认真听课的样子,A就报告老师说,有人打了他。  

可是,老师也没有看见谁打了他,于是就不好做判断,也就没法去执行该批评谁。  

但是,当B缓缓地拍了一下A,A就可以看到是B,老师也能知道是B,这样老师就可以去批评B了。  

当我讲完的时候,大家恍然大悟,原来是软件反应不过来,懵圈了。  

所以只需要加个等待时间就可以了。  

接着我就让孩子们尝试了一下,完美解决!  


我是济源凯旋城乐高活动中心的郭老师!

Tag:济源乐高
相关文章