游戏开发零基础入门教程(8):游戏积木之逻辑

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

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


- 循环

- 如果,那么


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


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


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



没有系统性的学习课程和路线?自己学习没氛围学不下去?遇到问题无人帮助即时解答?缺少经验不知该如何前行?......欢迎加入小蚂蚁的游戏开发年度课程,不只是一门课,而是围绕着学习游戏开发有关的一整套服务。帮助你用一年的时间学会做游戏,做出自己的游戏,让游戏为你带来睡后收入。欢迎来跟一百多位同学一起学习做游戏,一起探索游戏的更多可能。【点击这里】了解课程服务详情,【点击这里】可了解小蚂蚁能为你提供的其它课程和服务。


这里是小蚂蚁的部分小游戏,闲暇之余希望能给你带来片刻的放松和愉悦。无需下载安装,点击下方的游戏卡片就可以直接玩啦!










欢迎加个微信,交个朋友,朋友圈每日分享与做游戏有关的知识和内容,可以来围观。备注“学习做游戏”可免费领取原创的游戏开发教程资料大合集!非学员只接受付费咨询,不闲聊,望见谅。

相关文章
|
6月前
|
前端开发 图形学
技术经验解读:【Unity3d游戏开发】UGUI插件入门之游戏菜单
技术经验解读:【Unity3d游戏开发】UGUI插件入门之游戏菜单
36 0
游戏开发零基础入门教程(10):游戏积木之碰撞
顾名思义就是两个物体碰到一起。联系到我们的现实世界,你随手将一个东西扔出去,这个东西最终掉落在地上,就可以说这个东西与地面发生了碰撞。在游戏开发中,我们关注的“碰撞”重点在于发生的那一刻:是谁碰到了谁,碰撞的一方或者被撞的一方又该做出怎样的反应。
77 0
游戏开发零基础入门教程(10):游戏积木之碰撞
|
存储 JavaScript C#
从零开始做一款Unity3D游戏<三>——编写游戏机制(一)
从零开始做一款Unity3D游戏<三>——编写游戏机制
从零开始做一款Unity3D游戏<三>——编写游戏机制(一)
游戏开发零基础入门教程(11):游戏积木之动画
让我们直接从示例开始,上一节中我们让“战机”发射子弹,击中“敌机”,然后敌机直接隐藏。这个过程过于粗糙,在真实的游戏中,敌机被击中后往往会伴随着爆炸动画以及音效。
89 0
游戏开发零基础入门教程(9):游戏积木之克隆
这一节里我们学习一下另一种游戏中常用的积木:克隆。 先回顾一下克隆的概念,就是将一个东西复制出很多份,每一份都是一个“克隆体”,而所有的“克隆体”都与“本体”有着相同的特性。 在“打飞机”的游戏中,需要有许许多多的敌机不停的从屏幕上方落下来。 我们就使用“克隆”来实现这个功能,通过“克隆”敌机,来产生无穷无尽的敌机。 首先,导入“背景”和“敌机”素材,布置一下场景。
80 0
游戏开发零基础入门教程(1):先对游戏有个概念
首先回答第一个问题,是的,学完这个教程后,你能够做出自己的游戏。这里,有一点儿地方需要澄清一下,“做出来”跟“能够做出来”是完全不同的,“做出来”是既定的事实,去做了,并且做出来了。而“能够做出来”只是一种想象,前提是要先“去做”。
268 0
|
安全
游戏开发零基础入门教程(12):从想法到设计的过程
一个游戏通常开始于一个想法,这个想法可以是千奇百怪的,可以是五花八门的,甚至可以是可笑的。不论如何有一个想法,是一个游戏的开端。当你有了一个想法了以后,如果你希望它最终能够变成一个真正的游戏,那么你就必须要继续往前走,反复的思考,雕琢你的粗糙的想法,将它细化,形成一份具体的可行的游戏设计方案。
129 0
|
数据可视化 Java
手把手一步一步教你使用Java开发一个大型街机动作闯关类游戏14之人身攻击范围指定与获取
手把手一步一步教你使用Java开发一个大型街机动作闯关类游戏14之人身攻击范围指定与获取
148 0
|
数据可视化 Java
手把手一步一步教你使用Java开发一个大型街机动作闯关类游戏15之拳击范围
手把手一步一步教你使用Java开发一个大型街机动作闯关类游戏15之拳击范围
189 0
|
存储 设计模式 JavaScript
从零开始做一款Unity3D游戏<三>——编写游戏机制(二)
从零开始做一款Unity3D游戏<三>——编写游戏机制
从零开始做一款Unity3D游戏<三>——编写游戏机制(二)