评论

绝对新手教程系列9-游戏积木之逻辑

游戏中最常用的两种逻辑:“循环”和“如果,那么”。

这节中我们将要学习游戏里最常用的两种逻辑:

- 循环

- 如果,那么

“循环”就是不停的做同一件事,例如不停的跑,不停的跳跃,不停的播放声音,不停的播放动画等。

“循环”又分为两种,一种有停止条件,一种没有停止条件。

让敌人从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点,如此来来回回的循环该如何实现呢?

欢迎关注我的公众号:小蚂蚁游戏。手把手的带你进入游戏开发的世界~


最后一次编辑于  03-16  
点赞 2
收藏
评论
登录 后发表内容