这是小蚂蚁游戏开发公众号原创的第42篇,微信小游戏开发实战系列的第8篇,点击上方的#微信小游戏开发实战话题可以查看本系列的所有内容。

本篇主要内容包括如何对网格上满足消除条件的方块进行消除处理。

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

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

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

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

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

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

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

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

接着来看消除处理。

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

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

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

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

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

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

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

消除一行。

消除两列。

总结一下:

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

练一下:

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


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

也欢迎加小蚂蚁微信(xiaomayi6669),交个朋友。


微信小游戏开发实战教程8-消除处理相关推荐

  1. 微信小游戏开发实战教程15-关卡编辑器的制作以及关卡分享功能的实现

    微信小游戏开发实战系列的第15篇. 本节主要内容有游戏中的关卡编辑器的实现思路以及如何利用分享功能将自己制作的关卡与好友分享. 如果你没有任何的游戏开发经验,欢迎阅读我的"人人都能做游戏&q ...

  2. 微信小游戏开发实战教程14-闯关模式的实现

    这是微信小游戏开发实战系列的第14篇. 本文主要内容是介绍精致1010闯关模式的设计和实现思路. 如果你没有任何的游戏开发经验,欢迎阅读我的"人人都能做游戏"系列教程,它会手把手的 ...

  3. 微信小游戏开发实战教程系列开启

    **这是小蚂蚁游戏开发公众号原创的第35篇. 在写完了"人人都能做游戏"的新手系列教程后,我收到了不少反馈.有人告诉我,因为看了我的系列教程做出了自己人生的第一个小游戏.也有人告诉 ...

  4. 微信小游戏开发实战教程13-随机生成形状功能的实现

    微信小游戏开发实战系列的第13篇. 本节内容包括:通过使用列表来实现可以设置权重的随机功能,以及游戏中的随机生成形状功能的具体实现. 如果你没有任何的游戏开发经验,欢迎阅读我的"人人都能做游 ...

  5. 微信小游戏开发实战教程11-使用本地缓存

    这是微信小游戏开发实战系列的第11篇. 本节主要内容:使用本地缓存来记录玩家的设置以及各种类型数据的本地缓存和读取操作. 如果你没有任何的游戏开发经验,欢迎阅读我的"人人都能做游戏" ...

  6. 微信小游戏开发实战教程12-广告的开通和接入

    微信小游戏开发实战系列的第12篇, 本节内容主要包括:如何尽快的开通广告功能,以及如何将广告接入到微信小游戏中. 如果你没有任何的游戏开发经验,欢迎阅读我的"人人都能做游戏"系列教 ...

  7. 微信小游戏开发实战教程2-使用表格处理数据

    **这是小蚂蚁游戏开发公众号原创的第36篇. 本篇内容包括微信小游戏开发工具中的表格的使用.重点学习表格中的数据的设置,遍历和查找操作,以及如何使用"调试场景"来验证游戏中的逻辑是 ...

  8. 微信小游戏开发实战教程3-绘制网格

    **这是小蚂蚁游戏开发公众号原创的第38篇.本篇主要内容包括使用微信小游戏开发工具动态的绘制一个网格,并通过使用变量来控制最终生成的网格的效果. 如果你没有任何的游戏开发经验,欢迎阅读我的" ...

  9. 微信小游戏开发新手教程14-整合到一起,做出你的小游戏

    终于到了真正动手做游戏的时刻,在这一节里,我会带你从头开始将我们的"太空保卫者"按照设计方案制作出来.这一节里的内容会非常的多,一遍消化不了,可以多读几遍.别着急,慢慢来. 首先, ...

最新文章

  1. 腾讯微视:向前一步是悲壮,向后一步是绝望zz
  2. POJ1465 Multiple——Bfs+余数判重——Pku1465
  3. 华人打造二次元老婆生成器!尔康容嬷嬷成萌妹,图像视频都能变 | Demo可玩
  4. Matlab创建特殊数组学习
  5. 导购的路上,媒体向左,社区向右
  6. 机器学习与数学分析(二)
  7. VTK:相互作用之EllipticalButton
  8. 黑马程序员python笔记_#华为云·寻找黑马程序员# 如何实现一个优雅的Python的Json序列化库...
  9. [UE4]多个Montage之间存在协作问题
  10. Leecode刷题热题HOT100(4)——寻找两个正序数组的中位数
  11. mysql 存储过程 光标_mysql存储过程 光标
  12. mysql 把一列转多行_Oralce 按分隔符把一列转成多行
  13. java静态类堆栈_Java回归学习-面向对象内存分析-堆栈
  14. 计算机网络安全 的论文,网络安全论文3000字范文参考(3)
  15. SAP 系统图片修改以及 ABAP屏幕图片(大小调整)自适应设置
  16. ### 20165219 2017-2018-2《Java程序设计》结对编程一 第二周总结
  17. C语言flag(0)
  18. 使用Linux Deploy在android手机上部署Ubuntu
  19. MySQL基础教程---创建、查询、备份数据库
  20. M1 电脑可以体验Windows11系统吗?M1 MAC安装win11详细教程(附图解)

热门文章

  1. [机器学习与scikit-learn-38]:算法-分类-支持向量机-通过等高线可视化决策边界线和隔离带
  2. php deel views,全量修改文件App名称和改动views位置设置
  3. 仙人掌之歌——上线运营(1)
  4. Codeforces-1610 C: Keshi Is Throwing a Party
  5. SDI视频数据流格式简介(频率、速率、YUV、EAV、SAV)
  6. adb模拟按键home_adb命令中 模拟按键 KeyCode 部分详解
  7. 基于JAVA电商购物商城系统设计与实现 开题报告
  8. php无法导出excel,PHPExcel导出Excel文件时出现错误的解决办法
  9. 最新算法只需一块GPU,就能算出蛋白质结构
  10. 【超级干货】Delphi轮播视频和图片程序(用于双屏显示程序)