这节中我们将要学习游戏里最常用的两种逻辑:
- 循环
- 如果,那么
“循环”就是不停的做同一件事,例如不停的跑,不停的跳跃,不停的播放声音,不停的播放动画等。
“循环”又分为两种,一种有停止条件,一种没有停止条件。
让敌人从A点移动到B点,就是有停止条件的循环,停止条件为到B点。让背景音乐循环播放5次,也是有停止条件的循环,停止条件为5次。
无停止条件的循环从游戏开始时开始,直到游戏结束时结束。在游戏中你可以让背景音乐一直循环播放,直到游戏结束为止。
“如果,那么”的逻辑非常的直白,如果玩家死了,那么游戏就应该结束。反之,如果玩家没有死,那么游戏就不应该结束。如果我干掉了一个敌人,那么我的得分就应该加一。如果敌人被子弹打中了,那么它就应该爆炸......
下面,我们以一个简单的例子,来学习使用这两种逻辑。
假设,当前游戏中存在两个点,分别为 A 点和 B 点,敌机要从 A 点飞到 B 点,当到达到 B 点时,又会再次回到 A 点,然后继续飞向 B 点,如此循环往复。
分析一下这其中的逻辑,想要让敌机从 A 点飞往 B 点,需要借助“循环”逻辑,让敌机不停的往 B 点的方向移动。当到达 B 点后,要再次回到 A 点,这里就需要借助“如果,那么”逻辑。“如果”敌机的位置达到了B点,“那么”就将敌机的位置重新设置到 A 点。
接着,我们看一下如何使用积木块来实现这个简单的功能。
首先,我们导入一些素材,来搭建一个简单的场景。
如图,我们导入了“圆点”和“基础文字”素材,并在编辑区中设置了A和B的两个圆点位置。
小提示:图片的颜色可以通过调节属性区中的“颜色叠加”来进行修改。
在层级管理中选中“敌机”,然后在积木区中点击“添加事件”按钮,添加一个“当场景启动时”的事件。
这样就添加了一个“当场景启动时”的积木块,我们会把所有的逻辑放到“当场景启动时”的积木块中,这样只要游戏开始运行,敌机就会不停的从 A 点飞向 B 点了。
接着,我们来添加第一块积木。在积木区右侧选择“运动”,然后把“将自己移到随机的相对坐标”积木块,拖拽到积木区中。
小提示:所有与移动,旋转相关的积木块都包含在右侧的“运动”中。
我们希望从游戏一开始,敌机就位于 A 点的位置,所以选择移动到“圆点”位置,“圆点”表示 A 点的位置,“圆点_1”表示 B 点的位置。
接着,我们要添加一块“循环”积木,点击右侧的“逻辑”,将“重复执行”积木拖拽到积木区。这里使用的是没有停止条件的循环积木块,下方蓝色方块中的三个积木块为有停止条件的循环积木块。
看起来是这个样子,接着将敌机的移动放在这个“重复执行”的积木块中。
选择“运动”,把“将自己的X坐标增加10”的积木块拖拽到积木区。
由于 B 点位于 A 点正下方,所以只需要设置 Y 轴的位置即可,让敌机不停的向正下方移动,这里通过让敌机的 Y 坐标不停的减少来实现。
点击“预览场景”看一下效果。
游戏开始后,敌机会从 A 点的位置开始一直向下飞,但是到达 B 点后,敌机依旧保持向下飞,直到飞出屏幕。
下面,我们添加“如果,那么”积木块,来实现到达 B 点后敌机再次从 A 点开始飞行。
在右侧的“逻辑”中找到“如果”积木块,拖拽到积木区。
接着增加判断条件,右侧选择“运算”,找到比较积木块,拖拽到“如果”积木块的判断条件处。
我们需要对敌机的位置以及 B 点的位置进行比较,右侧选择“侦测”,找到“自己的x”积木块,拖拽到比较积木块上的椭圆形处。
我们只需要比较敌机以及 B 点在 y 轴上的位置,所以选择 y 进行比较。在 y 轴上如果敌机的位置比 B 点的位置小,那就证明敌机达到 B 点了,此时“如果”积木块的条件成立。
图中的“圆点_1”表示的就是 B 点。
条件成立后,我们要把敌机再次放回到 A 点的位置。
右侧找到“运动”中的“将自己移到随机的相对坐标”积木,拖拽到“如果”积木块中。
最终看起来是应该这个样子。
我们看着上方的图再过一遍整个逻辑:
游戏开始后,敌机被放到 A 点的位置,然后开始循环,敌机向 B 点移动,当敌机到达 B 点(敌机的 y 小于 B 点的 y)后,把敌机再次放到 A 点的位置,然后敌机再次从 A 点向 B 点移动。
点击“预览场景”,再次看一下效果。
你的游戏是否也实现了这个效果呢?
总结一下:
我们学习了游戏中最常用的两种逻辑“循环”和“如果,那么”。
利用这两种逻辑我们实现了一个简单的功能。
思考一下:
如果敌机从 A 点飞到 B 点,到达 B 点以后,再从 B 点飞回 A 点,如此来来回回的循环该如何实现呢?
我是会做游戏也会教你做游戏的小蚂蚁,想学习做游戏的话,关注我就对啦!欢迎关注公众号【小蚂蚁教你做游戏】,领取全网最全的微信小游戏开发原创教程资料。