如何做一个泡泡龙游戏(一)

简介: 嗨!大家好,我是小蚂蚁。从今天开始,我将会用几篇文章讲一下如何制作一个泡泡龙游戏,泡泡龙是一个传统经典的消除游戏,也是一个经久不衰永不过时的游戏。这篇文章我们主要来了解一下如何设置泡泡龙游戏的初始布局。

嗨!大家好,我是小蚂蚁。从今天开始,我将会用几篇文章讲一下如何制作一个泡泡龙游戏,泡泡龙是一个传统经典的消除游戏,也是一个经久不衰永不过时的游戏。


这篇文章我们主要来了解一下如何设置泡泡龙游戏的初始布局。



如图,是一个泡泡龙游戏的布局,可以发现它跟其他的消除类游戏还是有一些不同之处的。在其他的消除游戏中,行和列通常都是规则的,例如 1010 游戏中 10 行 10 列的布局。但是在泡泡龙游戏中,不是规则的,比如说第 1 行有 5 列,第 2 行有 4 列,第 3 行 5 列,第 4 行 4 列.....


虽然,是不规则的,但还是有一定的规律的,就是 1,3,5 的奇数行比 2,4,6 的偶数行多出一列。


要创建一个泡泡龙游戏的布局,其实就是需要根据当前的行号列号去设置每个泡泡的位置,之前在消除游戏系列教程中已有讲过,这里我们就跳过一些琐碎的步骤,直接跳到推导结果。



如图,这里是一个重点的地方,即行间距如何计算,从排列图中可以看到,第二行的圆跟第一行的圆之间是有一定的交叉的,所以第二行和第一行的距离并不等于圆的直径。那行间距到底是什么呢?注意看图中标注出的那个直角三角形,第二行和第一行的间距其实就是这个直角三角形的较长的直角边的长度


还记得曾经学过的与直角三角形有关的三角函数吗?什么?早就还给老师了。没关系,可以去先查一下,我就是用到的时候现查的,没什么不好意思的。


这里我们其实已知的是斜边的长度,即一个圆的直径,另外也知道上方的角度是30度,计算长的直角边的长度,这里用到的是余弦函数,已知斜边的长度和角度,可以计算出直角边的长度。


接着,我们来看一下已知条件,以及最终的结果计算公式。



这里需要注意的是,在计算水平方向的 x 坐标时,需要根据当前所在的是奇数行还是偶数行使用不同的计算方式。


在掌握了理论基础之后,接下来只需要使用相应的逻辑来完成这个计算就好了。


首先,我们来布置一下场景。



非常的简单,只有背景,一个“泡泡”和一个“初始化泡泡”(我们把克隆泡泡的逻辑放在这上面)。


接着,创建一些全局变量,用于后续使用。



可以看到这里泡泡的直径,行数,列数,起点的位置x,y,都是已经的条件。


接着,来看一下“初始化泡泡”上的克隆泡泡的逻辑。



使用一个双重循环一行一行的克隆泡泡,这里需要注意的是奇数行偶数行的区别,偶数行创建的泡泡数量要比列数少一,这里我们使用了取余 2 的计算来判断是奇数行还是偶数行(什么?不知道什么是取余计算?快点儿去查一下)。


最后,来看一下“泡泡”上的逻辑积木。



就是根据我们上方的推导公式计算并设置泡泡的 x 坐标和 y 坐标。这里注意一下,奇数行偶数行的x坐标的计算公式有差异。


预览一下场景。



这样,我们就创建了一个 6 行 6 列的泡泡龙游戏初始化的布局了。


在所有的消除游戏里都存在这样一个过程,即正向推导逆向推导。上方我们讲过的这一系列过程就是正向推导,我们根据一个泡泡的行号列号推算出了它游戏界面上的位置(即游戏世界坐标系中的 x 和 y 坐标)。


接下来,我们来看一下逆向推导,即已知当前游戏世界坐标系中的一个点的 x 和 y 坐标,推算出当前点击的这个泡泡的行号列号



推算公式在这里了,主要有两点儿需要注意的地方,第一个是在计算列号时,奇数行偶数行的计算公式不同。另一个是用到了四舍五入,保证了只要这个坐标位置位于这个圆的区域之内,那么它就是位于这个圆上。

建议你在纸上把图画出来,然后对照着公式去带入理解,验证。每次涉及到计算时我都会使用这种方法,而且屡试不爽。

现在理论具备了,接下来我们就在游戏中实现一下这个逆向推导过程,我们实现一个这样的示例:任意点击某个泡泡,然后根据当前点击的位置,推算出当前点击的是哪个泡泡。


这是加在背景上的积木逻辑。



虽然看起来很长,但是其实很简单。就是根据当前手指在屏幕上点击位置的 x,y 坐标,推导出泡泡的行号列号,最后向所有的泡泡发送一个通知。


最后,再来看一下泡泡的完整积木逻辑。



在克隆泡泡时,我们使用两个局部变量(行号列号),记录当前泡泡的位置,然后在接收到“动一下”通知时,用这两个变量来判断当前点击的是否是自己,是的话就“弹出”一下。


最后,我们来预览一下。



点击哪个泡泡,这个泡泡就会动一下。注意,这里当我们点击一个泡泡时,整个过程是这样的:根据当前点击位置的 x,y 坐标,计算出当前点击的时哪一行哪一列的泡泡,然后给所有的泡泡发送了一个“动起来”的通知,接到通知后,行号列号都等于计算出的行号列号的那个泡泡,会自己动一下。


好了,今天的内容就到这里了,我们学习了一下泡泡游戏的初始布局如何设置,然后了解了正向推导逆向推导的过程。如果你看过我之前写的与消除游戏有关的教程,大概就能看出来,在所有的消除类型的游戏中,有些东西是相通的,例如初始的布局正向推导,逆向推导的过程,对于泡泡龙这个消除游戏来讲只不过是稍有差异而已。


理解这些东西最难的地方或许就是那几个数学计算公式,见过很多人一提到数学公式就头大。其实完全没有必要,这些数学计算其实并不复杂,最多不过初中的数学知识,而且即使你全忘光了也没什么关系,完全可以在用到的时候搜索一下某个公式是什么意思,就可以了。


真正让你头大的其实并不是这些数学知识有多难,而是因为你从未尝试过好好的坐下来,拿出一张纸,画出一个图,然后慢慢的分析和理解。


相信我,这并不是浪费时间,所有的消除类型的游戏中有一些东西是完全相通的,只要你深刻的理解并搞清楚一个,以后就会一通百通了。


有的时候一件时间把我们难倒并不是因为这件事情本身太难了,而是因为我们太懒了。

我是会做游戏也会教你做游戏的小蚂蚁,想学习做游戏的话,关注我的公众号就对啦!

这里是我的游戏开发课程服务,不只是一门课,而是一套围绕着新手学习做游戏有关的一整套服务。致力于帮助更多的人学会做游戏并做出自己的游戏,目前已有 43 名学员,多位同学已经通过学习做出了自己的游戏,如果你是一位想学习做游戏的朋友,欢迎【点击这里】了解详情。

这是我做的几个简单好玩消除小游戏,闲暇之余希望能给你带来片刻的放松和愉悦。

精致1010

一个很精致的消除游戏。

小程序

精致点点连线

忙碌生活中的片刻放松。

小程序

水果方块1010

果汁四溅的经典消除游戏。

小程序

也欢迎加个微信,交个朋友,朋友圈每日分享与做游戏有关的知识内容,可以来围观。接受付费咨询,不闲聊,望见谅。

相关文章
|
缓存 关系型数据库 数据库
PostgreSQL的性能
PostgreSQL的性能
814 2
|
人工智能 数据可视化 区块链
信息管理策略升级:实现团队协作新高度
本文探讨了信息不对称在现代社会中的痛点及其影响,分析了其本质及表现形式,并提出了打破信息不对称的核心策略。通过构建清晰的信息传递机制、借助数字化工具、培养信息共享文化及利用创新工具如板栗看板,团队可以有效提升协作效率和决策质量,迈向信息对称时代。未来,人工智能、区块链等技术将进一步推动信息透明化,助力组织健康发展。
|
机器学习/深度学习 算法 Python
CatBoost中级教程:超参数调优与模型选择
CatBoost中级教程:超参数调优与模型选择【2月更文挑战第12天】
1746 2
|
5天前
|
缓存 人工智能 自然语言处理
我对比了8个Claude API中转站,踩了不少坑,总结给你
本文是个人开发者耗时1周实测的8大Claude中转平台横向评测,聚焦Claude Code真实体验:以加权均价(¥/M token)、内部汇率、缓存支持、模型真实性及稳定性为核心指标。
2380 16
|
23天前
|
人工智能 数据可视化 安全
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
本文详解如何用阿里云Lighthouse一键部署OpenClaw,结合飞书CLI等工具,让AI真正“动手”——自动群发、生成科研日报、整理知识库。核心理念:未来软件应为AI而生,CLI即AI的“手脚”,实现高效、安全、可控的智能自动化。
34940 57
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
|
17天前
|
人工智能 自然语言处理 安全
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
本文介绍了Claude Code终端AI助手的使用指南,主要内容包括:1)常用命令如版本查看、项目启动和更新;2)三种工作模式切换及界面说明;3)核心功能指令速查表,包含初始化、压缩对话、清除历史等操作;4)详细解析了/init、/help、/clear、/compact、/memory等关键命令的使用场景和语法。文章通过丰富的界面截图和场景示例,帮助开发者快速掌握如何通过命令行和交互界面高效使用Claude Code进行项目开发,特别强调了CLAUDE.md文件作为项目知识库的核心作用。
15775 46
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
|
13天前
|
人工智能 JavaScript Ubuntu
低成本搭建AIP自动化写作系统:Hermes保姆级使用教程,长文和逐步实操贴图
我带着怀疑的态度,深度使用了几天,聚焦微信公众号AIP自动化写作场景,写出来的几篇文章,几乎没有什么修改,至少合乎我本人的意愿,而且排版风格,也越来越完善,同样是起码过得了我自己这一关。 这个其实OpenClaw早可以实现了,但是目前我觉得最大的区别是,Hermes会自主总结提炼,并更新你的写作技能。 相信就冲这一点,就值得一试。 这篇帖子主要就Hermes部署使用,作一个非常详细的介绍,几乎一步一贴图。 关于Hermes,无论你赞成哪种声音,我希望都是你自己动手行动过,发自内心的选择!
3035 29
|
2天前
|
云安全 人工智能 安全