游戏开发实战教程(8):消除处理

简介: 在“1010”游戏中玩家会不停的将下方的图形拖拽到网格中放置,当满足一行或者一列被填充满时,就会进行消除得分。这一节我们就来学习一下如何进行消除处理。实现思路:当形状被放置到网格上后,对网格数据进行遍历和检查,如果满足消除条件(一行或者一列数据都是1),则移除当前行或列的方块。在项目中添加一个新的方块素材,重命名为“网格数据管理”。我们会把所有与网格数据有关的逻辑都放在这个上面。它不会在游戏中显示,只是默默的在背后为我们进行网格数据的检查和处理。这里我用蓝色把它与其他物体区分开。

在“1010”游戏中玩家会不停的将下方的图形拖拽到网格中放置,当满足一行或者一列被填充满时,就会进行消除得分。这一节我们就来学习一下如何进行消除处理。


实现思路:当形状被放置到网格上后,对网格数据进行遍历和检查,如果满足消除条件(一行或者一列数据都是1),则移除当前行或列的方块。


在项目中添加一个新的方块素材,重命名为“网格数据管理”。我们会把所有与网格数据有关的逻辑都放在这个上面。它不会在游戏中显示,只是默默的在背后为我们进行网格数据的检查和处理。这里我用蓝色把它与其他物体区分开。


新建两个全局列表:“全局-匹配行”和“全局-匹配列”用于记录所有满足条件的行号和列号。


新建两个通知,“网格数据验证”通知会告诉我们什么时候进行数据验证。“移除匹配方块”通知会告诉我们什么时候该去进行消除处理。


接下来看一下“网格数据验证”中的逻辑。

只是看起来挺长,但是逻辑并不复杂,先逐行检查网格中的数据,记录满足条件的行,然后再逐列检查,记录满足条件的列,网格数据的检查和遍历我们在【第二节】中已经详细的讲过,如果忘记了,可以去复习一下。


接着来看消除处理。

逻辑很简单,如果当前有匹配的行或者列,则通知所有的填充方块,进行消除。


最后,看一下填充方块的逻辑。

上部分的逻辑之前已经讲过,在创建填充方块时将其放置在网格中的对应位置,并将网格中对应位置的数据设置为“1”。


下部分当接收到“移除匹配方块”的通知时,判断自己的行号和列号是否位于“全局-匹配行”或者“全局-匹配列”中,如果是的话,将自己删除,并且将对应位置的网格数据重置为“0”。


什么时候对网格中的数据进行检查和消除处理呢?当然是当我们把图形放置在网格上后开始。选择“容器-1”,在放置形状的最后增加一个通知积木。

如图,形状被放置在网格上后,就立即发送一个通知,告诉“网格数据管理”可以开始进行数据检查和消除了。


预览一下,看看消除的效果。

消除一行。


消除两列。


总结一下:


这一节我们学习了对网格中的方块进行消除处理,其实还是通过网格中数据来检查行和列是否满足消除条件,然后通过使用“通知”来实现填充方格的删除。


练一下:


相关文章
|
6月前
俄罗斯方块游戏开发实战教程(7):消除判断和处理
俄罗斯方块游戏开发实战教程(7):消除判断和处理
76 0
|
6月前
|
数据可视化 搜索推荐 开发工具
小蚂蚁的消除游戏系列教程
小蚂蚁的消除游戏系列教程
53 0
|
6月前
|
开发者
泡泡龙游戏开发实战教程(8):完整流程
泡泡龙游戏开发实战教程(8):完整流程
108 0
|
6月前
|
算法
泡泡龙游戏开发实战教程(6):实现连锁消除
泡泡龙游戏开发实战教程(6):实现连锁消除
76 0
|
6月前
泡泡龙游戏开发实战教程(7):先移动还是先计算
泡泡龙游戏开发实战教程(7):先移动还是先计算
70 0
|
6月前
|
索引
塔防游戏开发实战教程(2):创建不同类型的炮塔
塔防游戏开发实战教程(2):创建不同类型的炮塔
59 0
|
缓存 算法 API
《unity游戏优化》第六章读书笔记
《unity游戏优化》第六章读书笔记
|
存储 JavaScript C#
从零开始做一款Unity3D游戏<三>——编写游戏机制(一)
从零开始做一款Unity3D游戏<三>——编写游戏机制
从零开始做一款Unity3D游戏<三>——编写游戏机制(一)
|
缓存 算法
消除游戏系列教程大合集
今天给大家带来一份消除游戏系列教程大合集,谦虚的讲这应该是全网你能找到的最好的消除游戏系列教程(反正我是没找到更好的)。这年头儿,像小蚂蚁这样的,虽然没几个人看但还在孜孜不倦的写教程的人已经不多了,所以大家且看且珍惜,一定要记得收藏,虽然收藏了你也不会看,但是至少有个心理安慰。如果对你有用的话,不要忘了点赞分享一下,也算是对我的鼓励了。
80 0
|
开发工具
游戏开发实战教程(16):如何对微信小游戏进行优化
优化这件事儿我以前很少会在意,因为一直做手机游戏,手机硬件的更新速度非常的快,更快的计算能力,更强的渲染能力,更大的内存。这就导致了如果你不是做一个大型游戏的话,几乎是不太用考虑优化的。 直到我开始做微信小游戏,作为一个小游戏是有诸多的限制的,计算能力,渲染能力,尤其是对游戏大小的限制(不能超过4M),这些限制让我不得不重新的转变一些之前做游戏的想法。
170 0