基本玩法
1.经典版是4*4的♦️
2.每次滑动后从没有♦️的地方随机生成一个♦️,数据大小一般是2,也可以是4
3.每次滑动如果前方非新生成的♦️,大小相同则可以合并,如果前方是空格,则一直往前移动
4.最大数达到2048则赢,格子不能滑动也不能合并则游戏结束
基本思路
算法:
1.用一个二维数组存放方格中的数据
2.滑动时先根据方向,将数组进行方向变换,使得永远往X轴正向移动
如数组向上滑动的处理步骤
i.初始状态
0,2,0,0
0,2,0,0
0,0,0,0
0,0,0,0
ii.转换方向后(向上:顺时针90度)
0,0,0,0
0,0,2,2
0,0,0,0
0,0,0,0
iii.向右滑动
0,0,0,0
0,0,0,4
0,0,0,0
0,0,0,0
iiii.恢复原方向(逆时针90度)
0,4,0,0
0,0,0,0
0,0,0,0
0,0,0,0
3.移动计算完毕后将方向转换回去
4.得到运动轨迹数据,刷新UI
UI:
1.主要游戏区域使用一个FrameLayout,当前的♦️都用BlockTextView表示
2.♦️的位置使用translationX,translationY调整
3.每个♦️做动画时使用Animator来更新translationX或者translationY
截图: