俄罗斯方块游戏开发实战教程(7):消除判断和处理

简介: 俄罗斯方块游戏开发实战教程(7):消除判断和处理

嗨!大家好,我是小蚂蚁。

今天我们继续来了解下一个环节:消除判断和处理。因为消除判断和消除处理都比较简单,所以,这里我们就将这两个环节合并在一起讲解。

消除判断

俄罗斯方块中的消除在消除游戏里算是最简单的了,因为只需要满足一个条件:任意一行只要被填满方块即可消除。就游戏中的数据表格来讲,只要表格中的任何一行所有的数字都为 1 ,则该行就满足消除条件。所以,在进行消除判断的时候就很简单了,我们只需要一行一行的去遍历表格中的数据,只要这一行中的所有数据都为 1,就记录下这一行的行号。等到所有遍历完成之后,再来检查一下是否有满足消除条件的行,如果有的话,则进行消除处理。

直接来看一下关于消除判断的积木逻辑。

这里注意一下,在向“消除的行号列表”中插入当前的行号时,我使用一个运算积木“行迭代 + 0”,这么做的原因是,当你直接向列表中插入一个数字时,有的时候列表无法自动判断出插入的这个东西是数字,它就会把这个数字当作一个字符放进列表中。之后当你判断列表中是否包含某个数字时,如果之前插入的是字符,判断结果就会为“否”,这会导致一些莫名其妙的问题。所以,在插入数字时,我们直接使用一个运算积木,相当于明确的告诉列表,我要插入的是一个数字,而不是一个字符。

消除处理

接着,来看一下如何处理消除。

在消除判断中,我们已经找到了满足消除条件的行号,例如当前需要消除的有“1,2,3”行。要进行消除,只需要向所有的“填充方块”发送一个“消除”的通知,接收到通知的方块检查一下自己是否位于需要消除的行,如果是的话,就将自己删除即可。

来看一下“消除计算”下半部分的积木逻辑。

如果有满足消除条件的行,就向所有的填充方块发送“消除处理”的通知,否则的话,判断是否到达最上方,是的话,游戏结束,不是的话,继续生成下一个形状。

最后,再来看一下填充方块的消除处理。

只要自己的行号包含在“消除的行号列表”中,则证明这个方块需要消除,就对它进行消除处理。

预览一下场景,看一下消除效果。

总结一下:俄罗斯方块游戏的消除判断在所有的消除游戏里是最简单的,只需要判断数据表格中某一行是否都为 1 即可。在消除判断中,记录的是满足消除条件的行号,我们把这些行号记录在一个“列表”中,在消除处理中,我们向所有的填充方块发送一个通知,接收到通知的填充方块,通过检查自己所在的行号是否包含在“消除的行号列表“中,来判断自己是否需要消除。

消除游戏背后的实质就是那张看不见的数据表格,几乎所有的判断和处理都基于它,好好锻炼一下自己的那双可以洞悉游戏表象的眼睛,就从最简单的俄罗斯方块开始吧!

相关文章
|
6月前
俄罗斯方块游戏开发实战教程(3):玩家如何控制形状
俄罗斯方块游戏开发实战教程(3):玩家如何控制形状
77 1
|
6月前
|
数据可视化 搜索推荐 开发工具
小蚂蚁的消除游戏系列教程
小蚂蚁的消除游戏系列教程
53 0
|
6月前
塔防游戏开发实战教程(3):创建不同类型的敌人
塔防游戏开发实战教程(3):创建不同类型的敌人
177 0
|
6月前
|
算法
泡泡龙游戏开发实战教程(5):核心查找匹配算法
泡泡龙游戏开发实战教程(5):核心查找匹配算法
153 0
|
存储 JavaScript C#
从零开始做一款Unity3D游戏<三>——编写游戏机制(一)
从零开始做一款Unity3D游戏<三>——编写游戏机制
从零开始做一款Unity3D游戏<三>——编写游戏机制(一)
|
缓存 算法
消除游戏系列教程大合集
今天给大家带来一份消除游戏系列教程大合集,谦虚的讲这应该是全网你能找到的最好的消除游戏系列教程(反正我是没找到更好的)。这年头儿,像小蚂蚁这样的,虽然没几个人看但还在孜孜不倦的写教程的人已经不多了,所以大家且看且珍惜,一定要记得收藏,虽然收藏了你也不会看,但是至少有个心理安慰。如果对你有用的话,不要忘了点赞分享一下,也算是对我的鼓励了。
80 0
|
数据管理 容器
游戏开发实战教程(8):消除处理
在“1010”游戏中玩家会不停的将下方的图形拖拽到网格中放置,当满足一行或者一列被填充满时,就会进行消除得分。这一节我们就来学习一下如何进行消除处理。 实现思路:当形状被放置到网格上后,对网格数据进行遍历和检查,如果满足消除条件(一行或者一列数据都是1),则移除当前行或列的方块。 在项目中添加一个新的方块素材,重命名为“网格数据管理”。我们会把所有与网格数据有关的逻辑都放在这个上面。它不会在游戏中显示,只是默默的在背后为我们进行网格数据的检查和处理。这里我用蓝色把它与其他物体区分开。
72 0
|
定位技术 开发者
如何做一个俄罗斯方块游戏(一)
从今天开始,我将开启一个新的游戏,并且顺带着会写一个新的系列教程,这个游戏就是人人都知道的——俄罗斯方块。 我一直都在做消除类型的游戏,在所有消除类型的游戏里,俄罗斯方块可以称得上是“鼻祖”了,所以,不论怎样这个系列里都不能少的了它。
147 0
|
算法 索引 容器
如何做一个俄罗斯方块游戏(二)
嗨!大家好,我是小蚂蚁。今天我们继续学习如何做一个俄罗斯方块游戏。整个系列教程计划按照这个流程图开展,这也是我制作整个游戏的过程,今天我们就来看一下“随机生成形状”这个模块。想要实现随机的生成形状,首先必须要知道在俄罗斯方块中一共有多少种形状(也就是我们上一节中留下的第二个问题)。
182 0
|
数据管理 容器
微信小游戏开发实战8-消除处理
本篇主要内容包括如何对网格上满足消除条件的方块进行消除处理。 如果你没有任何的游戏开发经验,欢迎阅读我的“人人都能做游戏”系列教程,它会手把手的教你做出自己的第一个微信小游戏。
123 0