3

游戏开发新手入门教程9:游戏积木之逻辑

 2 years ago
source link: https://blog.51cto.com/u_15530520/5095298
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

游戏开发新手入门教程9:游戏积木之逻辑

原创

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

  • 如果,那么

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

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

让敌人从A点移动到B点,就是有停止条件的循环,停止条件为到B点。让背景音乐循环播放5次,也是有停止条件的循环,停止条件为5次。

无停止条件的循环从游戏开始时开始,直到游戏结束时结束。在游戏中你可以让背景音乐一直循环播放,直到游戏结束为止。

如果,那么”的逻辑非常的直白,如果玩家死了,那么游戏就应该结束。反之,如果玩家没有死,那么游戏就不应该结束。如果我干掉了一个敌人,那么我的得分就应该加一。如果敌人被子弹打中了,那么它就应该爆炸......

下面,我们以一个简单的例子,来学习使用这两种逻辑。

假设,当前游戏中存在两个点,分别为 A 点和 B 点,敌机要从 A 点飞到 B 点,当到达到 B 点时,又会再次回到 A 点,然后继续飞向 B 点,如此循环往复。

分析一下这其中的逻辑,想要让敌机从 A 点飞往 B 点,需要借助“循环”逻辑,让敌机不停的往 B 点的方向移动。当到达 B 点后,要再次回到 A 点,这里就需要借助“如果,那么”逻辑。“如果”敌机的位置达到了B点,“那么”就将敌机的位置重新设置到 A 点。

接着,我们看一下如何使用积木块来实现这个简单的功能。

首先,我们导入一些素材,来搭建一个简单的场景。

游戏开发新手入门教程9:游戏积木之逻辑_游戏开发新手教程

如图,我们导入了“圆点”和“基础文字”素材,并在编辑区中设置了A和B的两个圆点位置。

游戏开发新手入门教程9:游戏积木之逻辑_游戏开发新手教程_02

​小提示:图片的颜色可以通过调节属性区中的“颜色叠加”来进行修改。​

在层级管理中选中“敌机”,然后在积木区中点击“添加事件”按钮,添加一个“当场景启动时”的事件。

游戏开发新手入门教程9:游戏积木之逻辑_游戏开发入门教程_03

这样就添加了一个“当场景启动时”的积木块,我们会把所有的逻辑放到“当场景启动时”的积木块中,这样只要游戏开始运行,敌机就会不停的从 A 点飞向 B 点了。

游戏开发新手入门教程9:游戏积木之逻辑_游戏开发教程_04

接着,我们来添加第一块积木。在积木区右侧选择“运动”,然后把“将自己移到随机的相对坐标”积木块,拖拽到积木区中。

游戏开发新手入门教程9:游戏积木之逻辑_游戏开发新手教程_05

​小提示:所有与移动,旋转相关的积木块都包含在右侧的“运动”中。​

我们希望从游戏一开始,敌机就位于 A 点的位置,所以选择移动到“圆点”位置,“圆点”表示 A 点的位置,“圆点_1”表示 B 点的位置。

游戏开发新手入门教程9:游戏积木之逻辑_游戏开发入门教程_06

接着,我们要添加一块“循环”积木,点击右侧的“逻辑”,将“重复执行”积木拖拽到积木区。这里使用的是没有停止条件的循环积木块,下方蓝色方块中的三个积木块为有停止条件的循环积木块。

游戏开发新手入门教程9:游戏积木之逻辑_游戏开发新手教程_07

看起来是这个样子,接着将敌机的移动放在这个“重复执行”的积木块中。

游戏开发新手入门教程9:游戏积木之逻辑_游戏开发教程_08

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

游戏开发新手入门教程9:游戏积木之逻辑_游戏开发新手教程_09

由于 B 点位于 A 点正下方,所以只需要设置 Y 轴的位置即可,让敌机不停的向正下方移动,这里通过让敌机的 Y 坐标不停的减少来实现。

游戏开发新手入门教程9:游戏积木之逻辑_游戏开发新手教程_10

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

游戏开始后,敌机会从 A 点的位置开始一直向下飞,但是到达 B 点后,敌机依旧保持向下飞,直到飞出屏幕。

游戏开发新手入门教程9:游戏积木之逻辑_游戏开发新手教程_11

下面,我们添加“如果,那么”积木块,来实现到达 B 点后敌机再次从 A 点开始飞行。

在右侧的“逻辑”中找到“如果”积木块,拖拽到积木区。游戏开发新手入门教程9:游戏积木之逻辑_游戏开发入门教程_12

接着增加判断条件,右侧选择“运算”,找到比较积木块,拖拽到“如果”积木块的判断条件处。游戏开发新手入门教程9:游戏积木之逻辑_游戏开发入门教程_13

我们需要对敌机的位置以及 B 点的位置进行比较,右侧选择“侦测”,找到“自己的x”积木块,拖拽到比较积木块上的椭圆形处。游戏开发新手入门教程9:游戏积木之逻辑_微信小游戏开发_14

我们只需要比较敌机以及 B 点在 y 轴上的位置,所以选择 y 进行比较。在 y 轴上如果敌机的位置比 B 点的位置小,那就证明敌机达到 B 点了,此时“如果”积木块的条件成立。

游戏开发新手入门教程9:游戏积木之逻辑_微信小游戏开发_15

图中的“圆点_1”表示的就是 B 点。

条件成立后,我们要把敌机再次放回到 A 点的位置。

右侧找到“运动”中的“将自己移到随机的相对坐标”积木,拖拽到“如果”积木块中。

游戏开发新手入门教程9:游戏积木之逻辑_微信小游戏开发_16

最终看起来是应该这个样子。游戏开发新手入门教程9:游戏积木之逻辑_游戏开发新手教程_17

游戏开发新手入门教程9:游戏积木之逻辑_游戏开发新手教程_18

我们看着上方的图再过一遍整个逻辑:

游戏开始后,敌机被放到 A 点的位置,然后开始循环,敌机向 B 点移动,当敌机到达 B 点(敌机的 y 小于 B 点的 y)后,把敌机再次放到 A 点的位置,然后敌机再次从 A 点向 B 点移动。

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

游戏开发新手入门教程9:游戏积木之逻辑_游戏开发教程_19

你的游戏是否也实现了这个效果呢?

总结一下:

我们学习了游戏中最常用的两种逻辑“循环”和“如果,那么”。

利用这两种逻辑我们实现了一个简单的功能。

思考一下:

​如果敌机从 A 点飞到 B 点,到达 B 点以后,再从 B 点飞回 A 点,如此来来回回的循环该如何实现呢?


我是会做游戏也会教你做游戏的小蚂蚁,想学习做游戏的话,关注我就对啦!欢迎关注公众号【小蚂蚁教你做游戏】,领取全网最全的微信小游戏开发原创教程资料,或者加小蚂蚁vx(xiaomayi6669),交个朋友。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK