我试图在as3中为cs类创建一个2048的克隆,我在移动块时遇到了麻烦。我基本上声明了一个4x4阵列:
var tiles:Array = new Array(new Array(4), new Array(4), new Array(4), new Array(4));
我把它全部设置为开头的空字符串:
for(i = 0; i < 4; i++){
for(j = 0; j < 4; j++){
tiles[i][j] = '';
}
}
我还有一个显示功能,以便在帧上显示数组:
function display():void{
for(i = 0; i < 4; i++){
for(j = 0; j < 4; j++){
if(tiles[i][j] != ''){
tiles[i][j].x = 50 + (107 * j)
tiles[i][j].y = 50 + (107 * i)
}
}
}
}
我还有一个keydown事件来移动磁贴:
for(i = 0; i < 4; i++){
for(j = 0; j < 4; j++){
if(tiles[i][j] != ''){
switch (event.keyCode){
case Keyboard.LEFT:
tiles[i][0] = tiles[i][j]
break;
case Keyboard.RIGHT:
tiles[i][3] = tiles[i][j]
break;
case Keyboard.UP:
tiles[0][j] = tiles[i][j]
break;
case Keyboard.DOWN:
tiles[3][j] = tiles[i][j]
break;
}
tiles[i][j] = ''
}
}
}
它应该将新磁贴设置为等效于旧磁贴,然后将旧磁贴设置为''
,但由于某种原因,它将新磁贴和旧磁贴设置为{ {1}}!我不确定这里发生了什么,有人能指出我正确的方向吗?