本文首发于微信公众号:小蚂蚁教你做游戏。欢迎关注领取更多学习做游戏的原创教程资料,每天学点儿游戏开发知识。

俄罗斯方块小游戏已上线,欢迎【点此体验】。

嗨!大家好,我是小蚂蚁。今天我们继续来了解下一个环节:消除判断和处理。因为消除判断和消除处理都比较简单,所以,这里我们就将这两个环节合并在一起讲解。

消除判断

俄罗斯方块中的消除在消除游戏里算是最简单的了,因为只需要满足一个条件:任意一行只要被填满方块即可消除。

就游戏中的数据表格来讲,只要表格中的任何一行所有的数字都为 1 ,则该行就满足消除条件。所以,在进行消除判断的时候就很简单了,我们只需要一行一行的去遍历表格中的数据,只要这一行中的所有数据都为 1,就记录下这一行的行号。等到所有遍历完成之后,再来检查一下是否有满足消除条件的行,如果有的话,则进行消除处理。

直接来看一下关于消除判断的积木逻辑。

这里注意一下,在向“消除的行号列表”中插入当前的行号时,我使用一个运算积木“行迭代 + 0”,这么做的原因是,当你直接向列表中插入一个数字时,有的时候列表无法自动判断出插入的这个东西是数字,它就会把这个数字当作一个字符放进列表中。之后当你判断列表中是否包含某个数字时,如果之前插入的是字符,判断结果就会为“否”,这会导致一些莫名其妙的问题。所以,在插入数字时,我们直接使用一个运算积木,相当于明确的告诉列表,我要插入的是一个数字,而不是一个字符。

消除处理

接着,来看一下如何处理消除。

在消除判断中,我们已经找到了满足消除条件的行号,例如当前需要消除的有“1,2,3”行。要进行消除,只需要向所有的“填充方块”发送一个“消除”的通知,接收到通知的方块检查一下自己是否位于需要消除的行,如果是的话,就将自己删除即可。

来看一下“消除计算”下半部分的积木逻辑。

如果有满足消除条件的行,就向所有的填充方块发送“消除处理”的通知,否则的话,判断是否到达最上方,是的话,游戏结束,不是的话,继续生成下一个形状。

最后,再来看一下填充方块的消除处理。

只要自己的行号包含在“消除的行号列表”中,则证明这个方块需要消除,就对它进行消除处理。

预览一下场景,看一下消除效果。

总结一下:俄罗斯方块游戏的消除判断在所有的消除游戏里是最简单的,只需要判断数据表格中某一行是否都为 1 即可。在消除判断中,记录的是满足消除条件的行号,我们把这些行号记录在一个“列表”中,在消除处理中,我们向所有的填充方块发送一个通知,接收到通知的填充方块,通过检查自己所在的行号是否包含在“消除的行号列表“中,来判断自己是否需要消除。

消除游戏背后的实质就是那张看不见的数据表格,几乎所有的判断和处理都基于它,好好锻炼一下自己的那双可以洞悉游戏表象的眼睛,就从最简单的俄罗斯方块开始吧!


我是会做游戏也会教你做游戏的小蚂蚁,欢迎关注微信公众号【小蚂蚁教你做游戏】,领取更多学习做游戏的原创教程资料,每天学点儿游戏开发知识。

俄罗斯方块游戏开发教程7:消除判断和处理相关推荐

  1. 俄罗斯方块游戏开发教程8:下落处理

    本文首发于微信公众号:小蚂蚁教你做游戏.欢迎关注领取更多学习做游戏的原创教程资料,每天学点儿游戏开发知识. 俄罗斯方块小游戏已上线,欢迎[点此体验]. 嗨!大家好,我是小蚂蚁.今天我们继续来学习俄罗斯 ...

  2. 微信小游戏开发教程-游戏实现3

    微信小游戏开发教程-游戏实现3 对象池 由于游戏过程中会创建很多临时对象,这些对象很快又不再使用,垃圾回收器也能帮我们主动回收这部分垃圾,但是回收时间不可控制,同时增大了创建对象的开销,所以我们使用对 ...

  3. 微信小游戏开发教程-游戏实现2

    微信小游戏开发教程-游戏实现2 绘制地面 类似于绘制背景,读者自行完成代码.src/runtime/land.js 简易View系统 坐标布局对于复杂的页面来说维护相当困难,因此这里我们引入布局的概念 ...

  4. 微信小游戏开发教程-游戏实现1

    微信小游戏开发教程-游戏实现1 概述 微信开发者工具官方提供一个飞机大战的游戏Demo,这里我们不再使用这个demo,我们以FlappyBird为例,为了让读者更加容易理解. 源码 https://g ...

  5. 微信小游戏开发教程-2D游戏原理讲解

    微信小游戏开发教程-2D游戏原理讲解 原理 为了更加形象的描述,这里先上一张图: 背景 a. 首先,我们看到背景好像是一张无限长的图片在向下移动.实际则不然,这是一张顶部和底部刚好重叠的图片.这是一种 ...

  6. Unity 2D游戏开发教程之游戏中精灵的跳跃状态

    Unity 2D游戏开发教程之游戏中精灵的跳跃状态 精灵的跳跃状态 为了让游戏中的精灵有更大的活动范围,上一节为游戏场景添加了多个地面,于是精灵可以从高的地面移动到低的地面处,如图2-14所示.但是却 ...

  7. Unity 2D游戏开发教程之精灵的死亡和重生

    Unity 2D游戏开发教程之精灵的死亡和重生 精灵的死亡和重生 目前为止,游戏项目里的精灵只有Idle和Walking这两种状态.也就是说,无论精灵在游戏里做什么,它都不会进入其它的状态,如死亡.于 ...

  8. Unity 2D游戏开发教程之使用脚本实现游戏逻辑

    Unity 2D游戏开发教程之使用脚本实现游戏逻辑 使用脚本实现游戏逻辑 通过上一节的操作,我们不仅创建了精灵的动画,还设置了动画的过渡条件,最终使得精灵得以按照我们的意愿,进入我们所指定的动画状态. ...

  9. Unity网络多玩家游戏开发教程第1章Unity自带网络功能

    Unity网络多玩家游戏开发教程第1章Unity自带网络功能 Unity拥有大量的第三方插件,专门提供了对网络功能的支持.但是,大部分开发者第一次接触到的还是Unity自带的网络功能,也就是大家经常说 ...

最新文章

  1. echarts横坐标文字太长显示不完的两种解决办法:rotate旋转文字、调用函数让文字纵向排列
  2. 英语----专业单词
  3. 操作系统大内核和微内核_操作系统中的内核类型
  4. 移动端touch与click
  5. 无法在C语言软件里敲字,网页上不能输入文字怎么办
  6. C语言基础专题 - 指针(编写中)
  7. Mac自带的实用功能
  8. shell脚本批量创建用户
  9. 地形瓦片地图TiledMap AutoTiles自动图块
  10. 【OpenCV 例程 300 篇】101. 自适应中值滤波器
  11. php文件上传实验总结,php文件上传总结 - osc_jjc36t9p的个人空间 - OSCHINA - 中文开源技术交流社区...
  12. (14.1)Zotero常用功能:插件、导入题录、参考文献
  13. 【deepin 20.1】终端的介绍
  14. 目前的物联网产品,主要有哪些?
  15. RNA提取和建库流程对mRNA-Seq的影响
  16. java 百家姓_java判断姓是否合格 百家姓
  17. 配置七牛云cdn加速
  18. 公司员工阳了怎么办?
  19. 2022-08-03 Flume
  20. python 因子分析_因子分析在python上的实现

热门文章

  1. LED护眼灯真的可以护眼吗?2022专业护眼台灯品牌排行榜
  2. C# 把汉字转换成拼音(全拼)
  3. linux Nginx服务的安装及使用
  4. 孙溟㠭创作篆刻作品(稻)纪念袁隆平老先生
  5. VM安装win7系统一直失败,可能是镜像文件不对
  6. 【C语言练习】求名次、找凶手
  7. fzoj Problem 2190 非提的救赎 【单调栈】
  8. 安装CentOS7时选择install后直接黑屏的解决办法
  9. ruoyi数据权限设置
  10. TPTP监控远程Tomcat