Scratch

状课网-少儿编程网课专业平台

Scratch scratch少儿编程第二季—飞机大战07、完善程序修改bug之列表的使用(二)

发布时间:2021-11-17 15:04:35 浏览 0
各位小伙伴大家好:

上期我们修改了部分bug,本期继续来抓bug之旅。

今天我们要修改的bug难度比较大,在前面的程序运行过程中,我们细心的小伙伴会发现。  

当敌机数量超过3架,那么前面创建的飞机就不会发射子弹了。   为了解决这个bug我也从网上查找过相关资料,但大多只有三言两语。  

这里为大家做一个详细的解说。   所用的知识难度也有点大,建议初中以上的孩子去理解。如果不理解也没关系,我们将在即将开始的python编程第二季会有相关方面知识的讲解。  

我们解决这bug用的知识是列表(链表),这两个名词含义不同,但这里不做解释。  

在这前我们还是把子弹的做一点修改,碰撞之后删除克隆体。 不明白的小伙伴可以参考前面的课程。  

scratch少儿编程第二季—飞机大战07、完善程序修改bug之列表的使用(二)

接下来我们来使用列表。 说先插入两个列表, wzx列表用来存储敌机的x坐标。 wzy列表用来存储敌机的y坐标。   然后让子弹按顺序出现在敌机相应的位置上(敌机的坐标分别存在两个列表中)。   当子弹在相应的位置上显示过之后就删除相应的位置。  

scratch少儿编程第二季—飞机大战07、完善程序修改bug之列表的使用(二)

通过视频我们可以看到,虽然这个子弹可以从敌机上正常显示了。但是有个子弹会在没有敌机的位置上发射。 从这个子弹的发射位置我们可以猜到是(0,0)   产生的原因是一个时间差(产生坐标和删除坐标之间的时间差)   删除坐标的时间是0.02秒,而产生敌机的坐标是0.04秒。这就导致列表为空,使得读取第一个坐标错误。   这里我们的解决方式是,先判断一下,列表是否为空,如果为空我们就等待0.02秒后产生新的坐标。

代码如下:

scratch少儿编程第二季—飞机大战07、完善程序修改bug之列表的使用(二)

现在我们再来看看视频:

写程序就是一个不断完善和改进的过程。看着自己的代码错误越来越少,越来越接近自己的设想。我想着大概就是编程的乐趣之一吧。  

↓下期再会↓

 

文章来源:创客编程小屋

本文链接:https://www.ascratch.com/news/17226.html

上一篇:scratch少儿编程第二季—06、完善飞机大战程序,修改bug之(一) 下一篇:返回列表