创建了静态背景,又生成了随机块之后,我们开始创建块移动的方法:
这是一个简单算法的实现,分为四种情况,上,下,左,右,这里我们以一种情况为例,进行代码的详细设计:
考虑向上的情况:
整体思想是:
1.从数字格的第二行开始从左到右遍历块,遍历到块不为空,并获取到当前块的下一个位置。
2.这时有三种情况:①如果下一个位置一直为空,就让块的坐标上移,直到坐标到顶,移到顶,跳出while循环,此时执行第一种情况;
②如果遇到下一个位置不为空,就跳出while循环,两个块的坐标值不相同,块就不再移动。
③如果遇到下一个位置不为空,且两个块的坐标值相同,同样跳出while循环,下一个块的块值翻倍,当前块的位置置空。
3.总结一下,总共包括了两个循环,第一次遍历空余的位置,第二次是只有找到有块的位置后找它的下一个位置,并进行相应的设置。
需要注意的是:
之前定义的存储空块的state[]数组此时大有用处,可以通过这个数组手动的设置块或者清空块。
代码阶段:
思路理清了,我们开始来写代码:
//移动函数
var move=function(m){
switch(m){
case "上":
break;
case "下":
break;
case "左":
break;
case "右":
break;
}
}