【scratch3-植物大战系列】— 游戏开始了(3)

Scratch 少儿编程 388浏览 0评论
植物大战僵尸系列

友情提示:视频教程观看时请手动设置清晰度。

 今天主要是对上一次内容进行补充和完善,验证过的朋友有没有发现问题,即bug呢。

大家肯定也发现了,其实主要问题是在多阳光的生成,都是会在最后一个向日

葵处生成阳光的。那为什么会有这种情况呢?

 

01

 

问题的症结

 

这个主要是在公有变量和私有变量在传递的时候,出现了问题:

因为向日葵和阳光分别属于不同的角色,而向日葵我们使用的是克隆体,所以,我们设置了私有变量用于存储克隆体坐标(x,y)。

但是它要怎么把坐标传给阳光呢,我之前设置了两个公用的x,y变量来传递,但是变量值的唯一性,会让它们始终只能存储一个x值和一个y值,所以,会出现上面说的情况。

要怎么解决呢,我们要引入一个新的积木:列表,它在这里

【scratch3-植物大战系列】--- 游戏开始了(3)

上图红框处,它也提供了公有和私有的类型,建立方式也跟变量一致,唯一不同,它可以存储多个内容。

【scratch3-植物大战系列】--- 游戏开始了(3)

比如上图的这个,它可以存储多个x坐标,那样的话,就算有冲突,它也会存到下面去,而不会丢失。

02

 

 

如何改进

这里主要修改了下面几个角色的脚本:

1、向日葵卡片

【scratch3-植物大战系列】--- 游戏开始了(3)

该角色主要增加了一个变量用来判断向日葵是否被种下。如果有种下,则可以继续被点击。

2、向日葵

【scratch3-植物大战系列】--- 游戏开始了(3)

这里就使用了两个列表,一个是向日葵坐标x列表向日葵坐标y列表, 一旦按下鼠标,则将鼠标的x和y传给向日葵的x和y,同时告诉系统,已经种下,修改“向日葵是否被种植”为1。

最后,将这两个坐标放入到列表中,然后从这个列表中将第一条记录的x和y值取出,作为生成阳光的位置。

3、阳光

【scratch3-植物大战系列】--- 游戏开始了(3)

特别注意后面的内容,使用后记得清理列表,给后来者提供干净的环境。

03

改进后效果

【scratch3-植物大战系列】--- 游戏开始了(3)

转自公众号:
浩浩学编程

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