电脑没有拿回家,发现今天还没更新,只好用手机来码字了。
今天主要在Scratch群里讨论了游戏《2048》的一些问题,我这里也写出我的思路来,大家可以一起讨论。
在这个题目刚出现的时候,我第一时间想到的是利用角色的克隆体进行上下左右的移动,但是在实践时发现,在处理移动动作时,要提前判断目标位置是否有其他的数字块,而这就存在一个判断时机的问题,如果目标位置本来有数字块,在当前数字块判断的时候还在,但稍后它移走了,这就造成当前数字块错过了移动时机,从而产生逻辑错误。
当然,想要解决这个问题也是有方法的,针对不同的移动指令,从需要移动的末端开始倒着进行移动指令的执行,这样就可以解决掉移动时机的问题,但是这样做会产生一个不确定因素,就是部分性能不好的电脑在执行这里会出现卡顿,导致数字块移动的过程被过分的放慢,体验很不好。
所以我更换了一套思路,使用16个数字块克隆体,充当一个“LED灯珠”角色,当数据部分需要对应位置的数字块呈现数字的时候,克隆体直接切换为对应造型并显示,这样数据部分的运算封装到一个不显示过程的自定义积木中,这样数据部分的运算相当快,然后16个克隆体只要根据数据分配,实时切换造型就好了。