cocos creator从零开发2048(05)-格子设计说明

数据和显示不分离

如果数据和显示分离,意味着它们要分开存储,这样就要用行和列来做唯一标识。

格子位置只计算一次

格子位置只在初始化的时候计算一次,然后在Grid脚本保存它的初始化位置,如果不保存,就要一直用行和列来做计算。

统一格子逻辑

这个是重点,看了网上的源码,判断能否移动格子、移动格子、游戏是否失败,都是 4 个方向做了逻辑的。这样只会造成代码增加、逻辑难以理解。如果统一了格子逻辑,不管是哪个方向移动,只需要取出那个方向的数据,遍历处理这个方向每一行的移动逻辑就行了。

示例

格子

grids属性从上到下分别存储了 [0, 0, 0, 2]、[0, 0, 8, 16]、[2, 2, 8, 2]、[0, 8, 32, 2] 这 4 行数据。

gridsReversed属性从左到右分别存储了 [0, 0, 2, 0]、[0, 0, 2, 8]、[0, 8, 8, 32]、[2, 16, 2, 2] 这 4 行数据。

当右移时,遍历grids每一行的数据,再移动每一行。

当左移时,遍历grids每一行的数据,先复制反转每一行的数据,再移动每一行。

当下移时,遍历gridsReversed每一行的数据,再移动每一行。

当上移时,遍历gridsReversed每一行的数据,先复制反转每一行的数据,再移动每一行。

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!