如何扫描阵列并绘制我的关卡?

时间:2013-06-04 19:46:46

标签: javascript html5-canvas

我正在制作基本游戏,现在我正在进行碰撞检查。我从一个数组中加载了我的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++
        }
    }

有人能帮帮我,告诉我哪里出错了吗?

2 个答案:

答案 0 :(得分:2)

只需在循环中循环:

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 first和x y loop。

答案 1 :(得分:0)

您没有循环遍历数组的每个元素。使用两个for循环。