游戏积木之克隆

简介: 这一节里我们学习一下另一种游戏中常用的积木:克隆。先回顾一下克隆的概念,就是将一个东西复制出很多份,每一份都是一个“克隆体”,而所有的“克隆体”都与“本体”有着相同的特性。

这一节里我们学习一下另一种游戏中常用的积木:克隆。


先回顾一下克隆的概念,就是将一个东西复制出很多份,每一份都是一个“克隆体”,而所有的“克隆体”都与“本体”有着相同的特性。


在“打飞机”的游戏中,需要有许许多多的敌机不停的从屏幕上方落下来。


我们就使用“克隆”来实现这个功能,通过“克隆”敌机,来产生无穷无尽的敌机。


首先,导入“背景”和“敌机”素材,布置一下场景。

640.png


接着,认识一个与“克隆体”有关的事件积木块。


在层级管理中选中“敌机”,然后点击“积木区”的“添加事件”按钮,选择“当作为克隆体启动时”事件。

640.png


添加后的积木块是这个样子。

640.png

“当作为克隆体启动时”这个积木块会在“克隆体”被创建出来后立即调用。举个例子:现在我需要克隆“敌机”,但是我希望新生成的“敌机”被放在指定的位置(例如屏幕的最上端),这时我们就可以在“当作为克隆体启动时”的积木块中设置“敌机”的位置。这样,新克隆出来的敌机就在我们指定的位置出现了。


接着,我们就试着实现一下这个功能:新生成的“敌机”在屏幕顶端出现,并且一直向下移动。


选择右侧的“运动”,把“将自己的X坐标增加10”积木块拖拽到积木区中。

640.png


设置一下积木块,将Y值设置到700,700就是屏幕顶端的位置。

640.png


在“编辑区”的左边和上边分别有“垂直标尺”和“水平标尺”。从下图中可以看出,游戏中屏幕的最高位置为700。

640.png


接着,我们让生成的敌机沿着屏幕一直向下飞。还记得要想一直向下飞需要用到什么逻辑吗?循环。如果忘记话,可以重温一下上一节(游戏积木之逻辑)。


我们添加一个重复执行的循环积木。

640.png


接着,在循环积木中加入“将自己的X坐标增加10”积木。

640.png


向下飞只需要将Y值减小即可,最终看起来应该是这个样子。

640.png


这样,当一架新的敌机被“克隆”出来以后,就会出现在屏幕的顶端,并且开始向下移动了。


下面,我们就来把敌机“克隆出来”吧!


现在假设,在游戏一开始我们就不停的去“克隆”敌机。


点击“添加事件”,选择“当场景启动时”事件。

640.png


接着,添加一块“重复执行”积木。

640.png


我们希望每间隔1秒钟,生成一架“敌机”,所以,再添加一块“等待1秒”积木块。

640.png


最后,将“控制”中的“克隆自己”拖拽到“等待1秒”积木块下方。

640.png


最后看起来是这样:

640.png

当场景启动后,每间隔1秒钟,就会克隆出一架“敌机”,这架敌机会在屏幕顶端的位置出现,然后一直向下飞行。


点击“预览场景”看一下效果。

640.gif


当前所有的“敌机”都是从屏幕顶端的同一个位置向下飞的,但是,在真实的游戏中,我们希望“敌机”能够随机的在不同的位置开始向下飞行。


接下来,通过增加一块积木来实现这个功能。


选择“运动”,把“将自己移到随机的相对坐标”积木拖拽到“设置自己的Y坐标为700”的积木块上方。

640.png


这块积木的作用是:在屏幕中随机的选择一个位置,然后将自己(敌机)放到那个位置。


我们先在屏幕中随机一个位置,然后再将Y位置设置在屏幕的顶端,结果是相当于我们的敌机可能出现在屏幕顶端的水平方向的任意位置上。

640.png


点击“预览场景”再看一下。

640.gif

敌人从不同的位置开始向下飞,这就是我们想要的效果。


你可能已经发现,游戏中“敌机”的本体一直位于场景的顶端,我们不希望它出现在这里。


在“编辑区”中选中“敌机”,将它移到场景之外即可。

640.png


再次“预览场景”。

640.gif

看起来不错,这样我们就完成了在游戏中不停产生敌机的功能。


下图就是敌机上的所有积木逻辑。

640.png

游戏开始后,每隔一秒生成一架敌机。

每当新的敌机生成出来,我们就把它放在屏幕顶端的随机水平位置处,然后让它不停向下移动。


回顾一下:

我们学习了如何使用“克隆”积木块,并且实现了在游戏中随机生成敌人的功能。


试想一下利用“克隆”还能实现哪些有趣的场景呢?尝试着动手实现一下。

相关文章
|
2天前
|
图形学
【制作100个unity游戏之26】unity2d横版卷轴动作类游戏7(附带项目源码)
【制作100个unity游戏之26】unity2d横版卷轴动作类游戏7(附带项目源码)
10 1
|
2天前
|
定位技术 图形学
【用unity实现100个游戏之17】从零开始制作一个类幸存者肉鸽(Roguelike)游戏1(附项目源码)
【用unity实现100个游戏之17】从零开始制作一个类幸存者肉鸽(Roguelike)游戏1(附项目源码)
5 0
|
2天前
|
图形学 容器
【用unity实现100个游戏之17】从零开始制作一个类幸存者肉鸽(Roguelike)游戏3(附项目源码)
【用unity实现100个游戏之17】从零开始制作一个类幸存者肉鸽(Roguelike)游戏3(附项目源码)
5 0
|
2天前
|
图形学
【用unity实现100个游戏之17】从零开始制作一个类幸存者肉鸽(Roguelike)游戏2(附项目源码)
【用unity实现100个游戏之17】从零开始制作一个类幸存者肉鸽(Roguelike)游戏2(附项目源码)
4 0
|
2天前
|
图形学
【用unity实现100个游戏之17】从零开始制作一个类幸存者肉鸽(Roguelike)游戏6(附项目源码)
【用unity实现100个游戏之17】从零开始制作一个类幸存者肉鸽(Roguelike)游戏6(附项目源码)
4 0
|
2天前
|
图形学
【用unity实现100个游戏之17】从零开始制作一个类幸存者肉鸽(Roguelike)游戏4(附项目源码)
【用unity实现100个游戏之17】从零开始制作一个类幸存者肉鸽(Roguelike)游戏4(附项目源码)
5 0
|
2天前
|
图形学
【用unity实现100个游戏之17】从零开始制作一个类幸存者肉鸽(Roguelike)游戏5(附项目源码)(上)
【用unity实现100个游戏之17】从零开始制作一个类幸存者肉鸽(Roguelike)游戏5(附项目源码)
4 0
|
2天前
|
图形学
【用unity实现100个游戏之17】从零开始制作一个类幸存者肉鸽(Roguelike)游戏5(附项目源码)(下)
【用unity实现100个游戏之17】从零开始制作一个类幸存者肉鸽(Roguelike)游戏5(附项目源码)
4 0
|
2天前
|
图形学
【制作100个unity游戏之26】unity2d横版卷轴动作类游戏1(附带项目源码)
【制作100个unity游戏之26】unity2d横版卷轴动作类游戏1(附带项目源码)
7 0
|
2天前
|
缓存 图形学
【制作100个unity游戏之26】unity2d横版卷轴动作类游戏8(附带项目源码)
【制作100个unity游戏之26】unity2d横版卷轴动作类游戏8(附带项目源码)
6 0