所有消除游戏背后那些看不见的数字

简介: 嗨!大家好,我是小蚂蚁,这是消除游戏系列教程的第 2 篇。在上一篇中我们讲到所有消除游戏(严格来讲是所有的非纯物理的消除游戏)的背后都有一张看不见的“网格”,这张“网格”是一个消除游戏的基础,有了它才有了行列式的布局,你才能够把指定的元素(图标)放置在指定的位置上,就像下面这样。

嗨!大家好,我是小蚂蚁,这是消除游戏系列教程的第 2 篇。

在中我们讲到所有消除游戏(严格来讲是所有的非纯物理的消除游戏)的背后都有一张看不见的“网格”,这张“网格”是一个消除游戏的基础,有了它才有了行列式的布局,你才能够把指定的元素(图标)放置在指定的位置上,就像下面这样。



在有了这样的基础之后,我们下一步是不是就可以开始实现各种各样的操作,去进行消除啦?且慢,在处理各种操作进行消除之前,你还需要理解一个东西,那就是所有消除游戏背后那些看不见的“数字”。


作为一个游戏制作者,你应该对自己有更高的要求,除了看见玩家所能看到的东西,也需要具备一双可以洞穿游戏的眼睛,看到那些玩家看不到的东西。除了看见那张“网格”,还需要再进一步,看见那张网格上面的“数据”。

如图,这是一个典型的三消游戏的样子。一个 6 x 6 的布局,共包含 4 种不同的元素。

任意交换相邻的两个元素,交换后,如果在水平或者竖直方向上满足相邻的至少 3 个元素相同这一条件,就消除这些元素。因为规则是满足 3 个相同的元素即可消除,所以又被称作是“三消”。

下面用你的眼睛扫描一下上方这个三消游戏的图片,看到那个“网格”了吗?(没看到的话证明你的“游戏创作者之眼”没有修炼好,请回顾一下,继续修炼一下)。


如果你的“游戏创作者之眼”修炼合格的话,你应该是可以看到下方的这张“网格”的,一个 6 行 6 列的网格,上方的那些消除游戏中的图标一个一个老老实实的按照这样的布局安放到每一个格子中。


接着,我们在看见“网格”的基础上,再进一步。

如图,网格中不再是空空如也了,而是填满了数字。这些数字是根据什么来填的呢?看一下右侧,我们用 1 表示黄色的正方形,2 表示红色的三角形,3 表示绿色的五边形,4 表示蓝色的六边形。然后对照着上方的游戏界面,我们将这些数字填入到了下方的这个网格中。接下来,我们的注意力将都会放置在这张填满数字的网格上,因为我们将借助它来完成查找,匹配,以及后来的消除和移动等操作。


你可能会问,为什么放着上方这个直观的图形界面不用,非要把它转换成下方这个看起来晦涩的数字网格呢?这个问题非常好,值得好好的回答一下。


如果你想要和一个只懂英语的人交流,那你会怎么做?先要把你想要表达的内容转换成英语,然后传达给对方,这样对方才有可能理解你的意思。如果,你上来冲着对方来一通汉语,那结果会怎样?大概只能看到对方一张布满问号的脸。


现在我们把外国人换一下,如果你想要和一台计算机交流,你会怎么做?先要把你想要做的东西转换成它能够理解的语言,然后传达给它,这样它才能够理解你的用意,做出你想要做的东西。如果,你上来冲着计算机说:嗨,哥们!我想做一个三消游戏,就那种三个一样的图标凑在一起就可以消除的,怎么样?很简单吧!帮我来一个。你猜结果会怎样。


对于人类来讲,我们更擅长处理表象化的东西,黄色的正方形匹配黄色的正方形,红色的三角形匹配红色的三角形,这样很直观,很容易理解。但是对于计算机来讲,它无法理解这些东西,它擅长处理的是“数据”。所以,为了能够和它顺畅的交流,我们就必须要把表象化的东西转化成它所能够理解的“数据”。这个东西还有一个高大上的词汇,叫做“数据抽象”。


其实说白了,就是如果你想要计算机帮你干活,那你就必须跟它说点儿它能够听的懂的“话”。


解答完了这个问题之后,我们就能够踏踏实实的看看这张填满数据的表格了。对于一个“三消”游戏来讲,我们如何把它的规则翻译成计算机能听得懂的“话”?


任意交换网格中两个相邻的数字,交换之后,如果满足在当前行或者列上至少 3 个相邻的数字相等,那么这 3 个相邻的数字就满足消除条件,就可以进行消除。

如图,我们将第 4 行第 4 列的 “” 和第 4 行第  列的 “” 进行交换,交换之后,竖直方向上的 3 个数字 4 相等,此时就满足消除消除条件。


好了,这就是消除游戏背后的那些看不见的“数字”了,对于玩家来讲,看到的是一个一个的游戏图标在移动,在消除,在下落,而对于游戏创作者来讲,你所做的其实是在一张布满数字的表格上,交换,比较,移动。这是两个完全不同的目光所及的两个完全不同的世界,是不是特别的神奇呢?


我们如何在游戏制作时构建这张填满数据的网格呢?仔细再看一下这个网格,它是不是很像是一个表格,二维数组,数组的数组......根据你所使用的编程语言和游戏制作工具的不同,一定都能找到对应的数据类型来呈现出这样的一个布满数据的表格。


在上一篇的基础上,我们在构建“网格”时,就可以再增加一个对应位置上的数字了。

->计算起始点的位置x0,y0
->循环(行数)次
  ->循环(列数)次
    ->创建元素
    ->根据当前的行列,设置元素的位置xn,yn
    ->根据当前的行列,在网格上的对应位置设置表格当前元素的数字(新增)
  ->列循环结束
->行循环结束


这样在绘制出可见的图标的同时,我们也绘制出了一张看不见的填满数据的“网格”。


在你的“游戏创作者之眼”得到进一步的提升之后,我们再来看一下那些常见的消除游戏吧!


  • 三消


交换两个数字,水平或者竖直方向上有 3 个相等的数字即可消除。




对于这类型的消除游戏来说,数据格式要简单很多,因为只需要 (计算机最喜欢的东西),只要一行或者一列的数字都是 1就满足消除条件,是不是有一种豁然开朗的感觉。


  • 连线消除


连线消除游戏,水平,竖直或者倾斜方向,只要数字相等,就可以把它们连起来,连起来的数字等于或超过 3 个就可以消除。


  • 点击消除(消星星)


点击任意一个数字,水平或者竖直方向上只要有相同的数字就消除。


仔细的观看上方的这 4 种不同类型的消除游戏的动图,来提升你的“游戏创作者之眼”的等级。


看起来千变万化类型各异的消除游戏,其实背后只不过是在包含着 这 5 个数字的表格中进行着各种各样的操作和处理,是不是有种“不过如此”的感觉呢?


在表象的游戏世界之下总有一些看不见的东西,作为游戏的创作者你需要具备一双“创作者之眼”来发现它们。很多看上去神奇的东西背后,只不过是一些简单的原理。发现它们就如同是捅破了一层窗户纸,让复杂多变的世界瞬间变得清晰而简单,此时,你可能会禁不住感叹:哦!原来是这样,不过如此啊!


想学习做游戏的话,关注我的就对啦!

另外我做了一门游戏开发课程服务,提供围绕着学习做游戏有关的一整套的服务,却只需一门的价钱。想学习做游戏的朋友不要错过了。可以了解这个服务的详情。

这里是我做的消除小游戏,不去看看吗?


精致

一个很精致的消除游戏。

小程序

圆点守护者

为守护家园而战

小程序

也欢迎加个微信,交个朋友,毕竟我还是个蛮有意思的人呢!

相关文章
|
10月前
|
人工智能 搜索推荐 大数据
探索虚拟现实技术的无限可能性
在当今数字化快速发展的时代,虚拟现实技术正日益引起人们的关注。本文将从技术创新、用户体验和未来发展等方面探讨虚拟现实技术的无限可能性,带领读者一同探索这个令人兴奋的数字世界。
107 1
|
4月前
|
人工智能 搜索推荐 区块链
元宇宙构建者:探索虚拟世界的无限可能性
在科技飞速发展的今天,元宇宙正逐步从科幻概念变为现实。本文探讨元宇宙构建者的角色、挑战与技术创新,以及他们如何塑造未来数字世界的愿景。构建者不仅需推动技术进步,还要关注社会伦理、隐私保护和数据安全,确保元宇宙的健康发展。
|
10月前
|
人工智能 数据格式
所有消除类游戏背后那些看不见的数字
所有消除类游戏背后那些看不见的数字
100 1
|
10月前
|
开发者
所有消除游戏背后都有一张看不见的网格
所有消除游戏背后都有一张看不见的网格
127 0
|
开发者
所有消除游戏背后那张看不见的网格
观察一下上方的这一系列各种各样的消除游戏的图片,它们都有着这样的一个共同点,就是都是按照行列进行布局,有 7 行 7 列,有 10 行 10 列的。这样的行列布局是不是特别的像一个“网格”?这就是我们今天要讲的,所有消除游戏背后都有的那张看不见的“网格”。
126 0
|
数据格式
所有消除游戏背后那些看不见的数字
作为一个游戏制作者,你应该对自己有更高的要求,除了看见玩家所能看到的东西,也需要具备一双可以洞穿游戏的眼睛,看到那些玩家看不到的东西。除了看见那张“网格”,还需要再进一步,看见那张网格上面的“数据”。
177 0
|
传感器 城市大脑 数据可视化
在虚拟看透现实,「数字孪生」承载人类多大的野心?
漫威著名IP《钢铁侠》系列电影里有一幕十分经典。
在虚拟看透现实,「数字孪生」承载人类多大的野心?
|
设计模式 IDE Java
每一个疑问背后都隐藏着至少一个盲点和学习的绝佳机会
每一个疑问背后都隐藏着至少一个盲点和学习的绝佳机会
208 0
|
定位技术
看得见的设计方法——因果联想法
最近一直在探究思考问题的思路,并且希望能把自己思考的过程呈现给大家。因果联想法是笔者个人总结的方法,是在平时思考过程中用到的并且有所裨益的方法,展现的是一种分析问题的思路。笔者尝试将此方法描述出来,结合日常的工作内容展示思考的过程,希望大家能够有所启发。
1778 0