2016-05-07 10 views
-1

So ist der Zweck hier ist, wenn der Ball trifft den Ziegel mit der Nummer 6 muss er die ganze Reihe mit der Nummer 0 ersetzen. Wenn ich Spleiß zum Beispiel: stenen.splice (i- -, 1) es löscht die Zeile, ohne Whitespace zu verlassen, aber mit dieser Nummer 0 ist es möglich, Whitespace zu erstellen, wie Sie im Code sehen können, aber ich weiß nicht wie?Ersetzen Sie Zahlen in Array mit ersetzen oder spleißen

var stenenPerRij = 27; 
var steenHoogte = 20; 
var steenBreedte = canvas.width/stenenPerRij; 

var stenen = [ 
    [0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 
    [0,0,0,0,0,0,1,1,5,5,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 
    [0,0,0,0,0,0,1,5,5,5,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 
    [0,0,0,0,0,0,1,1,5,5,5,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0], 
    [0,0,0,0,0,0,0,1,1,5,5,5,5,1,1,1,0,0,0,0,0,0,0,0,0,0,0], 
    [0,0,0,0,0,0,0,0,1,1,5,5,5,5,5,5,1,1,0,0,0,0,0,0,0,0,0], 
    [0,0,0,0,0,0,0,0,0,1,5,5,5,5,5,5,5,1,1,0,0,0,0,0,0,0,0], 
    [0,0,0,1,1,1,1,1,1,1,5,5,5,5,5,5,5,5,1,1,0,0,0,0,0,0,0], 
    [0,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,1,1,0,0], 
    [1,1,5,5,5,5,1,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,0,0], 
    [1,5,5,5,1,1,1,5,5,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,1,1,0], 
    [1,1,5,5,5,5,5,5,5,5,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,1,1], 
    [0,1,1,5,5,5,5,1,1,1,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,1,1], 
    [0,1,1,1,1,1,1,1,5,5,5,5,1,1,5,5,5,5,5,5,5,5,5,5,5,1,1], 
    [0,1,1,5,5,5,5,5,5,5,1,1,1,1,5,5,5,5,5,5,5,5,5,5,5,1,1], 
    [0,0,1,1,1,1,1,1,1,1,1,5,5,1,1,5,5,5,5,5,5,5,5,5,1,1,0], 
    [0,0,0,1,5,5,5,5,5,5,5,5,1,1,1,1,5,5,5,5,5,1,1,1,1,0,0], 
    [0,0,0,1,1,5,5,5,5,1,1,1,1,1,1,5,5,5,5,1,1,1,1,1,1,0,0], 
    [0,0,0,0,1,1,1,1,1,1,5,5,5,5,1,1,5,5,1,1,0,0,0,0,0,0,0], 
    [0,0,0,0,0,0,1,5,5,5,5,5,1,1,1,5,1,1,1,0,0,0,0,0,0,0,0], 
    [0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0] 
]; 

function makenMuur() { 
    for(var i = 0; i < stenen.length; i = i+1) { 
     for(var j = 0; j < stenen[i].length; j = j+1) { 
      tekenenStenen(j,i,stenen[i][j]); 
     } 
    } 
} 

function tekenenStenen(x,y,stenen) { 
    switch(stenen) { 
     case 1: 
      mijnObject.fillStyle = "#0d0d0d"; 
      break; 
     case 2: 
      mijnObject.fillStyle = "#333333"; 
      break; 
     case 3: 
      mijnObject.fillStyle = "#595959"; 
      break; 
     case 4: 
      mijnObject.fillStyle = "#808080"; 
      break; 
     case 5: 
      mijnObject.fillStyle = "#a6a6a6"; 
      break; 
     default: 
      mijnObject.clearRect(0, 0, steenBreedte, steenHoogte); 
      break; 
    } 
    if(stenen) { 
     mijnObject.beginPath(); 
     mijnObject.strokeStyle = "#000000"; 
     mijnObject.rect(x*steenBreedte, y*steenHoogte, steenBreedte, steenHoogte); 
     mijnObject.fill(); 
     mijnObject.stroke(); 
     mijnObject.closePath(); 
    } 
} 

Antwort

0

Da Sie die Zeile kennen, die getroffen hat, ersetzen Sie es nur mit einem Array mit 0 in jeder Position, z

var nullRij = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]; 
// other code 
stenen[indexOfHitRow] = nullRij; 
0

Sie können Schleife durch diese Zeile und setzen Sie alle Werte auf 0:

var rowIndex = 6; 
var myRow = allMyRows[rowIndex]; 

for (var i = 0; i < myRow.length; i++) { 
    x[i] = 0; 
} 
0

function changeWholeRowToZero(x){ 
 
    // x is the row index, start from 0. 
 
    if (typeof stenen[x] != 'undefined'){ 
 
     $.each(stenen[x], function(key, val){ 
 
      stenen[x][key] = 0; 
 
     }); 
 
    } 
 
}