3

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

 2 years ago
source link: https://blog.51cto.com/u_15530520/5241192
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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

原创

小蚂蚁教你做游戏 2022-04-22 09:17:31 博主文章分类:微信小游戏开发 ©著作权

文章标签 游戏开发教程 学习做游戏 文章分类 手游开发 游戏开发 阅读数186

微信小游戏开发实战8:消除处理_学习做游戏

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

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

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

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

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

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

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

微信小游戏开发实战8:消除处理_学习做游戏_04

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

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

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

接着来看消除处理。

微信小游戏开发实战8:消除处理_学习做游戏_06

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

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

微信小游戏开发实战8:消除处理_学习做游戏_07

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

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

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

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

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

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

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

消除一行。

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

消除两列。

总结一下:

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

练一下:

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


我是会做游戏也会教你做游戏的小蚂蚁,想学习做游戏的话,关注我就对啦!欢迎关注公众号【小蚂蚁教你做游戏】,领取全网最全的微信小游戏开发原创教程资料。

微信小游戏开发实战8:消除处理_学习做游戏_11

  • 1
  • 收藏
  • 评论
  • 分享
  • 举报

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK