Unity -2048 核心算法

来源:互联网 发布:全国网络教育统考网 编辑:程序博客网 时间:2024/05/29 19:50

数字显示的控制:

数字从2开始,一共13个,所以给每个数字一个编号1从一到十三来控制它的显示。根据图片中的位置,设置好每个数字的偏移坐标,在需要的时候显示相应的数字。


数字的移动:

用一个二位数组来储存当前游戏坐标中有哪些数字,在用一个数组存储当前数字的GameObject。第一个数组可以很方便的判断出来当前位置有没有数字,而通过第二个数组可以很方便的访问到这个数字。

然后需要检测数字的滑动,用GetMouseButtonUp和GetMouseButtonDown来检测,这个方法不仅可以检测鼠标的移动,也可以检测触屏事件。所以就可以根据鼠标的按下和抬起之间的距离差,来判断是进行了怎样的移动。在移动时需要一个移动的检测,当移动大于某个距离,此次滑动才会有效,否则一碰到就会滑动。

以向右滑动为例:

向右滑动的时候,需要一行一行的进行检测,每一行的右边向左边进行检测,假设其中第一行有2,2,2,2四个数字,检测的时候,第四个2和第三个2可以进行合并,但是第二个就不能和第三个进行合并了,就应该是第一个和第二个2进行合并。又假设这一行是2,2,4,在进行向右滑动的时候,就只能合并成4,4而不能直接合并成8。这算法需要使用一个for循环,使用标志位来进行判断。


数字的合并:

合并的时候需要移动到目标的位置,然后消失掉,再生成合并之后的数字,并且在合并的同时计算出得分。


0 0
原创粉丝点击