嗨!大家好,我是小蚂蚁。
今天我们继续学习连连看游戏数据表格的设置,在上一节里我们利用网格布局摆放了一个 10x8 的图片排列,这也是连连看游戏的初始布局。
在上图中我们可以看到初始的图片排列,这是看得见的部分。对于连连看游戏来讲,光有图片是不够的,还需要有图片背后的看不见的数据。这些数据是我们之后进行一系列逻辑处理的基础。关于数据抽象,我写过一篇非常详细的教程,可以前往【这里】阅读,在这里就不再重复写了。
先理论
还是先从理论开始,假设现在有一个 6x5 的布局,每个位置上都有图片。根据这样的信息我们创建一个6行5列的表格,表格里的数据只有 0 和 1,0 表示这个位置没有图片,1 表示这个位置有图片。
对于一个 6x5 的填满图片的布局,就可以用这样的一个表格来表示。
在连连看游戏中我们判断两个图标之间能够建立连接,其实判断的就是这两个图标之间是否有其他的图标,如果没有其他的图标,就表示这两个图标之间是能够连接的。
如图,要判断两个红色的 1 能否连接,只需要判断它们之间的三个位置是否为 0 即可,如果都为 0 ,则表示它们之间能够建立连接。
但是,在连连看游戏中有这样的情况,我们来看下面这张图:
用红色虚线连起来的图标都位于边界,在游戏中这些图标都是满足连接消除条件的,对于这样的情况我们该如何判断两个图标之间是否能够连接呢?
如图,我们在整个表格的上下左右四个方向上各增加了一行/列,这些增加的位置都是空的(用 0 表示),这样对于边界上的两个图标能否连接,就可以通过判断边界再往外一行或列的位置上是否都为 0 即可。
所以连连看游戏的数据表格要比表面上看到的行列数额外的多出两行两列,为的就是处理边界上图标相连的情况。
后实践
接下来我们在游戏中增加数据表格,并且在初始化的时候,根据图标的位置设置表格中对应位置的数据。
游戏的布局是 10行 x 8 列,表格需要多出两行两列,所以我们创建的表格是 12行 x 10列,将每个位置设置为 0,表示这是一个空的表格。
给正方形新增两个局部变量,记录的是这个图片在数据表格中的行号和列号。
最后,在积木逻辑上做一些修改。
注意,全局-行/列号是从 1 开始的,因为数据表格多出了 2 行 2 列,图片在数据表格中的行列号位置应该是它网格布局中的行列号位置加 1,然后根据数据行列号位置,将数据表格指定位置的数据设置为 1,表示此处有图片。
最后,调试一下场景。
从数据表格的数据中可以发现,第一行,最后一行,第一列,最后一列的数据都是 0,其他的位置都是 1。
总结一下
连连看游戏分两层,一层是看的见的各种不同的图片,另一层是看不见的图片背后的数据表格,这个数据表格是游戏后续进行一系列逻辑处理的基础。
表面上的网格布局和背后的数据表格并不是一一对应的,数据表格相对于网格布局多出了 2 行 2 列,这是为了后续处理边界上两个图片匹配的情况。
欢迎关注我的微信公众号【小蚂蚁教你做游戏】,可领取原创的游戏开发学习路线和教程资料合集。
这个用的什么软件呀?
为啥我一退出,重新进的时候,积木都消失了啊,在哪里找回来
不错不错