我正在做一个基本的游戏,现在我要进行碰撞检查。我从一个数组加载了mapp,但是我被困在绘制它的代码上。

加载数组:

var levelArray=[
    [1,0,0,0,0,0,0,0,0,1],
    [1,0,2,0,0,0,0,0,0,1],
    [1,0,0,0,0,0,0,0,0,1],
    [1,0,0,0,0,0,0,0,0,1],
    [1,0,0,0,0,0,0,0,0,1],
    [1,0,0,0,0,0,0,0,0,1],
    [1,0,0,0,0,0,0,0,0,1],
    [1,0,0,0,0,0,0,0,0,1],
    [1,0,0,0,0,0,0,0,0,1],
    [1,1,1,1,1,1,1,1,1,1]
]


这是我的代码,尝试绘制块(1)。

for(arrayx=0;arrayx<11;arrayx++){
        if (levelArray[arrayx][arrayy]==1){
            canvas_context.fillStyle = "blue";
            canvas_context.fillRect(arrayx*32,arrayy*32,32,32);
        }
        if (arrayx==10 && arrayy<11){
            arrayy++
        }
    }


有人可以帮助我,告诉我我要去哪里了吗?

最佳答案

像这样在循环内部制作循环:

var x;
var y;
var lengthX;
var lengthY;

for(x = 0 , lengthX = levelArray.length ; x < lengthX ; x++){
    for(y = 0 , lengthY = levelArray[x].length ; y < lengthY ; y++){
        if(levelArray[x][y] == 1){
            //draw
        }
    }
}


或先是y,然后是y循环内的x。

07-24 16:24