游戏开发实战教程(8):消除处理

简介: 在“1010”游戏中玩家会不停的将下方的图形拖拽到网格中放置,当满足一行或者一列被填充满时,就会进行消除得分。这一节我们就来学习一下如何进行消除处理。实现思路:当形状被放置到网格上后,对网格数据进行遍历和检查,如果满足消除条件(一行或者一列数据都是1),则移除当前行或列的方块。在项目中添加一个新的方块素材,重命名为“网格数据管理”。我们会把所有与网格数据有关的逻辑都放在这个上面。它不会在游戏中显示,只是默默的在背后为我们进行网格数据的检查和处理。这里我用蓝色把它与其他物体区分开。

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


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


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


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


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


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

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


接着来看消除处理。

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


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

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


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


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

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


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

消除一行。


消除两列。


总结一下:


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


练一下:


相关文章
|
5月前
|
IDE Java 开发工具
IntelliJ IDEA 使用技巧与插件推荐
IntelliJ IDEA 是一个功能强大、扩展性丰富的开发工具。通过掌握常用的快捷键和技巧,结合合适的插件,可以大幅提升你的开发效率。
256 2
|
9月前
|
人工智能 自然语言处理 搜索推荐
阿里云携手叫叫,共创儿童学习AI新体验
阿里云携手叫叫,共创儿童学习AI新体验
|
前端开发
数据分享|R语言零膨胀泊松回归ZERO-INFLATED POISSON(ZIP)模型分析露营钓鱼数据实例估计IRR和OR
数据分享|R语言零膨胀泊松回归ZERO-INFLATED POISSON(ZIP)模型分析露营钓鱼数据实例估计IRR和OR
|
前端开发 数据库
ruoyi-nbcio增加flowable流程待办消息的提醒,并提供右上角的红字数字提醒(一)
ruoyi-nbcio增加flowable流程待办消息的提醒,并提供右上角的红字数字提醒(一)
440 0
|
安全 网络安全
NIST
NIST
702 5
|
机器学习/深度学习 人工智能 算法
从数据增强的隐藏作用出发,揭示视觉强化学习可塑性损失的独特机制
【10月更文挑战第22天】视觉强化学习(VRL)通过智能体与环境的交互学习最优策略,但可塑性损失是其关键挑战。近期一篇论文《Revisiting Plasticity in Visual Reinforcement Learning: Data, Modules and Training Stages》通过实证研究,揭示了数据增强、评论家可塑性损失及早期干预在维持智能体可塑性方面的作用,并提出了一种动态调整重放率的方法,为解决高重放率困境提供了新思路。
286 2
|
监控 Oracle 关系型数据库
Oracle数据库性能优化
【10月更文挑战第16天】Oracle数据库性能优化是
325 1
|
运维 监控 安全
高效运维管理:提升系统稳定性的策略与实践
【10月更文挑战第13天】 本文探讨了高效运维管理的关键策略和实践,旨在帮助运维团队提升系统的稳定性。通过分析常见问题,提出具体的解决方案,包括监控与告警、自动化工具的应用、故障排查与恢复、性能优化以及安全防护等方面。通过这些策略和实践,可以帮助企业构建一个稳定、可靠且高效的IT系统。
458 1
|
并行计算 算法 搜索推荐
探索Go语言的高并发编程与性能优化
【10月更文挑战第10天】探索Go语言的高并发编程与性能优化
|
人工智能 运维 安全
阿里云跻身央国企上云服务商“全量领导者”
阿里云跻身央国企上云服务商“全量领导者”
834 10

热门文章

最新文章