微信小游戏开发实战 8:1010 游戏消除处理教程

微信小游戏开发实战 8:1010 游戏消除处理教程

本文的主要内容包括如何消除格子上符合淘汰条件的方块。

如果你没有任何游戏开发经验,欢迎阅读我的“”系列教程游戏开发实战,它将一步一步教你如何制作你的第一个微信小游戏。

在“1010”游戏中,玩家会不断将下方的图形拖拽到格子中并放置,当一行或一列填满时,点数就会被消除,本节我们就来学习如何消除它们。

实现思路:当形状放到网格上后,遍历检查网格数据,若满足淘汰条件(某一行或某一列的数据全为1),则移除当前行或当前列的块。

在项目中添加一个新的块材质,并将其重命名为“网格数据管理”。我们将把所有与网格数据相关的逻辑都放到它上面。它不会在游戏中显示,而是会在后台默默地帮我们检查和处理网格数据。这里我用蓝色来区别于其他物体。

新建两个全局列表:“全局-匹配行”和“全局-匹配列”,记录所有符合条件的行号和列号。

创建两个新的通知:“网格数据验证”通知将告诉我们何时执行数据验证,“删除匹配块”通知将告诉我们何时执行消除处理。

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

只是看上去很长,其实逻辑并不复杂,首先逐行检查网格中的数据,记录下符合条件的行,然后逐列检查,记录下符合条件的列。网格数据的检查和遍历我们在第二节()已经详细讨论过了,如果忘记了可以复习一下。

接下来我们看一下淘汰的过程。

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

最后我们来看看填充方块的逻辑。

上一部分的逻辑前面已经讲过了游戏开发实战,创建填充块时,将其放置在格子中对应的位置,并将格子中对应位置的数据设置为“1”。

当下半部分收到“删除匹配块”通知时,判断自己的行号和列号是否在“全局匹配行”或“全局匹配列”,若是,则删除自身,并将相应位置的网格数据重置为“0”。

我们什么时候检查并消除网格中的数据?当然,从我们将形状放置在网格上时开始。选择“Container-1”,并在形状末尾添加一个通知块。

如图所示,形状放置到网格上之后,会立刻发出通知,告诉“网格数据管理”可以开始进行数据检查与淘汰。

预览以查看消除的效果。

消除一行。

消除两列。

综上所述:

这一节我们学习了如何消除网格中的方块,其实还是通过网格中的数据来检查行和列是否满足消除条件3D植物地图场景,然后使用“通知”来删除填充的方块。

实践:

你实现过其他形状的拖拽填充吗?如果是,那就实现其他形状的消除吧!

我是会做游戏的小蚂蚁,可以教你做游戏,欢迎关注公众号【小蚂蚁教你做游戏】获取全网最全微信小游戏开发系列原创教程资料。

也欢迎大家添加小蚂蚁微信(xiaomayi6669)结交朋友。

文章来源:https://blog.csdn.net/flyhorsejun/article/details/123266343