微信小游戏开发实战8-消除处理

这是“微信小游戏开发实战“系列的第 8 篇,这个系列中我们会从 0 开始,制作出一个 1010 游戏。

如果你对游戏开发没有任何经验,可以阅读我的“人人都能做游戏”系列教程,它能手把手的带你做出自己的第一个微信游戏。

教程中所使用的小游戏开发工具为微信官方的小游戏制作工具:微信小游戏制作工具

1.gif

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

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

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

2.png

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

3.png

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

4.png

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

5.png

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

接着来看消除处理。

6.png

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

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

7.png

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

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

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

8.png

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

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

9.gif

消除一行。

10.gif

消除两列。

总结一下:

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

练一下:

你的其他形状的拖拽和填充都实现了吗?如果实现了的话,接着实现一下其它形状的消除吧!


如果你对游戏开发感兴趣,想了解更多与游戏开发有关的原创内容和教程,欢迎关注我的公众号:小蚂蚁游戏开发。

如果觉得文章不错,请点个「 」给我点动力,感谢~

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享