💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
这节课我们学习克隆,克隆的原意是指无性繁殖或营养繁殖的方式培育植物,后来应用到动物繁殖领域,世界上第一只被克隆的动物是克隆羊 — 多莉, ![](https://ws1.sinaimg.cn/large/6bd2803cgy1fuchcv4q5kj20su128qv5.jpg) 在我们的编程世界里,我们可以通过克隆的方式重用代码,重用舞台的各种元素,甚至直接重用角色,今天我们就用克隆的方式来实现一款小朋友们非常熟悉的游戏《植物大战僵尸》里的一个场景 —— 豌豆射手吐出豌豆的效果,后续我们会系列的把《植物大战僵尸》这个游戏实现一下,是不是很期待啊? #### **本节课知识点:使用克隆代码块完成豌豆射手吐出豌豆效果** 首先,我们通过之前学过的造型切换的知识点来完成豌豆射手摇晃起来的效果,豌豆射手的代码就完了,我们主要的工作是要完成豌豆发射出来的效果, 小明同学:这个简单啊,直接让豌豆的横坐标增加就可以了,这样实现不就行了吗?(拖入豌豆循环代码) ![](https://ws1.sinaimg.cn/large/6bd2803cgy1fuche05ynmj20l809ajuf.jpg) 阿达老师:非常棒,可是怎么实现豌豆重复发射的效果呢? 小明同学:可以在角色区再复制一个豌豆子弹,这样我们就有两个子弹了, ![](https://ws1.sinaimg.cn/large/6bd2803cgy1fuchf6t1mqj20x60is15q.jpg) 阿达老师:没错,但是如果要发射成百上千个子弹,那岂不是要复制无数年角色了吗?这样我们的程序会非常不好维护,运行起来也会非常的慢,我们怎么解决这个问题呢? 小明同学:。。。。。。。 好像是有点挫 这里我们可以用克隆的方式实现,我们可以不断的克隆豌豆子弹,来实现发射的效果,首先,从控制模块组里拖动“克隆自已”代码块出来,然后加上一个无限循环的代码, ![](https://ws1.sinaimg.cn/large/6bd2803cgy1fuchgtttkxj20bu09gaci.jpg) 我们双击一下这段代码看一下效果吧,我们拖动一下看看,咦,拖走一个,还有一个,再拖,仍然还有,在原来的坐标位置上我们克隆出来了好多个克隆体, ![](https://ws1.sinaimg.cn/large/6bd2803cgy1fuchhdi2zsj20xe0nk1kx.jpg) 有了克隆体我们就要对克隆体进行编码,所以,需要把“当作为克隆体启动时”代码块拖动到脚本区,这里要说明一下,我们在这里给克隆体的编码适用于所有克隆体哦,第一步,需要让克隆体显示出来,我们再从控制模块组里拖动条件循环语句出来,在重复执行的条件判断里加入“碰到僵尸”的条件,在重复执行的内容里面加入将x坐标增代码块,把x坐标增加的步长改为-1,试一下, ![](https://ws1.sinaimg.cn/large/6bd2803cgy1fuchinpjz0j20mg0g0jwv.jpg) 大家看所有的豌豆子弹碰到僵尸后就停在了那里,这是为什么呢? ![](https://ws1.sinaimg.cn/large/6bd2803cgy1fuchj92eigj20x40p44qp.jpg) 因为我们循环的条件是碰到僵尸后就满足了退出循环的条件,但是退出循环之后我们并没有做任何其它操作,在这里豌豆子弹打到僵尸身上后,它就完成任何了,克隆体的生命周期就结束了,这里我们要对克隆体进行清理,直接把克隆全删除就行了, 从控制模块组里把“删除克隆体”代码拖出来,放到循环语句的下方,好,大功告成,今天我们就讲到这里吧,我们下节课见