2013-06-04 21 views
2

我在做一個基本的遊戲,現在我正在進行碰撞檢查。我從一個數組中加載我的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++ 
     } 
    } 

有人能幫我一下,告訴我我哪裏出錯了嗎?

+1

'arrayy' – tymeJV

+1

這與碰撞檢測有什麼關係?它看起來像你只是用一個數組來填充塊 –

回答

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第一,x和y循環內。

0

您並未遍歷數組中的每個元素。使用兩個for循環。