//移动循环 function cellsMove(direction){ var markNum = 0,fromtemp,temp,l; //左移和上移都是从左上角开始循环 if(direction == left || direction == up){ for(var i=1;i<5;i++){ markNum = 0; for(var j=1;j<5;j++){ l=j+1; //左移具体循环判断 if(direction == left){ if($('.row'+i+'.col'+j).html()==""){ for(var k=j+1;k<5;k++){ if($('.row'+i+'.col'+k).html()!=""){ l=j-1; if(markNum == $('.row'+i+'.col'+k).html()){ fromtemp = $('.row'+i+'.col'+k).index(); temp = $('.row'+i+'.col'+l).index(); animateCells(fromtemp,temp,'col'+l,'col'+k,markNum); markNum = 0; }else{ markNum = $('.row'+i+'.col'+k).html(); fromtemp = $('.row'+i+'.col'+k).index(); temp = $('.row'+i+'.col'+j).index(); animateCells(fromtemp,temp,'col'+j,'col'+k,0); break; } } } }else if($('.row'+i+'.col'+j).html() == $('.row'+i+'.col'+l).html()){ markNum = $('.row'+i+'.col'+j).html(); fromtemp = $('.row'+i+'.col'+l).index(); temp = $('.row'+i+'.col'+j).index(); animateCells(fromtemp,temp,'col'+j,'col'+l,markNum); markNum = 0; }else{ markNum = $('.row'+i+'.col'+j).html(); } }代码注释及讲解
时间: 2024-01-17 16:05:48 浏览: 45
这段代码是2048小游戏中用于实现方块移动的循环函数。具体来说,这个函数接受一个参数direction表示方块移动的方向,然后根据方向进行循环判断,实现方块的移动和合并。
函数主要的实现步骤如下:
- 对于左移和上移,循环的起点都是左上角的方块,所以需要两个for循环来遍历所有方块。
- 对于每个方块,需要根据其周围的方块来进行移动和合并操作。如果当前方块为空,则需要向右(左移)或下(上移)寻找第一个非空方块,并将其移动到当前方块位置。如果当前方块与右侧(下侧)的方块数值相同,则需要将其合并,并将合并后的方块移动到当前方块位置。
- 在每次合并后,需要将标记数字markNum重置为0,并调用animateCells函数来实现方块的移动和合并动画效果。
总的来说,这个函数的作用是实现2048小游戏中的方块移动和合并操作,并在适当的时候调用animateCells函数实现动画效果。
阅读全文