“我正在参加社区游戏构思投稿大赛个人赛,详情请看:游戏构思投稿大赛”

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

这篇文章咱们首要来了解一下怎么设置泡泡龙游戏的初始布局。

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

如图,是一个泡泡龙游戏的布局,能够发现它跟其他的消除类游戏仍是有一些不同之处的。在其他的消除游戏中,行和列通常都是规矩的,例如 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 坐标,核算出当时点击的时哪一行哪一列的泡泡,然后给一切的泡泡发送了一个“动起来”的告诉,接到告诉后,行号列号都等于核算出的行号列号的那个泡泡,会自己动一下。

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

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

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

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

有的时分一件时刻把咱们难倒并不是因为这件工作自身太难了,而是因为咱们太懒了。


我是会做游戏也会教你做游戏的小蚂蚁,欢迎关注我的大众号【小蚂蚁教你做游戏】,学习更多与游戏开发有关的原创教程。

假如文章内容对你有所帮助的话,欢迎点赞分享,你的鼓励对我来说价值巨大,感谢!