2013-06-04 3 views
2

나는 기본적인 게임을 만들고 있는데, 이제 나는 충돌 검사를하고있다. 배열에서 맵을로드하지만 코드를 그려야합니다.배열을 스캔하고 레벨을 그리려면 어떻게해야합니까?

로드 배열 :

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 루프 내부의 Y 제 X를.

0

배열의 각 요소를 반복하지 않습니다. 두 개의 for 루프를 사용하십시오.

관련 문제