• 用canvas制作2048关闭
  • 雪峰 发表于 2016-07-05
  • 之前就想着独立地把2048这个游戏用canvas做出来看看,究竟自己能做出来吗?正好期末时间很闲,学习了一些canvas绘图技巧(其实之前早就学过了,可是经常忘)。

    2048这个小游戏刚出来的时候简直异常火爆啊,这个游戏其实不难,操作十分简单,可是想要玩到很大的数字就比较困难,理论上说这个游戏是无止境的。

    其实从canvas绘图上来说其实不难,首先绘制出一块4 x 4 的“地图”或者说是游戏容器,然后将每个格子上对应的信息保存到一个一维数组里面(二维数组也行,个人觉得没必要),然后创建“方块”对象(具体包括其坐标,数字,颜色,大小等等),然后就可以将数组遍历绘制“方块”。而且每次进行方向的操作后,进行数组的变化即可,然后再根据数组重新绘制canvas即可,思路很简单。

    难题在于逻辑的处理,其实只需要分析好一个方向上的变化逻辑即可,其它的都是类似的原理。可以把上下左右四个方向上的操作看成在行或者列上的操作即可,例如:左右即水平方向变化,即一行上的变化,然后遍历每行,上下亦如此。说实话,其实2048的逻辑处理也是比较简单的,可就怕粗心()。其实我一开始思路就是完全正确的,可是由于粗心大意多花了几个小时的时间。

    怎么说呢,由于是个人按照比较直白的思路进行编写的,所以算法上肯定有待优化之处。

    效果图:

    Baidu IME_2016-7-5_20-31-17

    查看介绍

    用canvas制作2048