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每一行的数据,先复制反转每一行的数据,再移动每一行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值