2014-09-17 5 views
0

Comment est-ce que je simplifierais cela, donc cela a le même effet?dessiner plusieurs images en une ligne

context.drawImage(imgs2[0],enemy.x+135,enemy.y,tileWidth,tileHeight); 
context.drawImage(imgs2[0],enemy.x+135,enemy.y2,tileWidth,tileHeight); 
context.drawImage(imgs2[0],enemy.x+135,enemy.y3,tileWidth,tileHeight); 
context.drawImage(imgs2[0],enemy.x+135,enemy.y4,tileWidth,tileHeight); 
context.drawImage(imgs2[0],enemy.x+135,enemy.y5,tileWidth,tileHeight); 
context.drawImage(imgs2[0],enemy.x+135,enemy.y6,tileWidth,tileHeight); 
context.drawImage(imgs2[0],enemy.x+135,enemy.y7,tileWidth,tileHeight); 
context.drawImage(imgs2[0],enemy.x+135,enemy.y8,tileWidth,tileHeight); 
context.drawImage(imgs2[0],enemy.x+135,enemy.y9,tileWidth,tileHeight); 

je « imgs2 » sauvé comme ça, dans un tableau

function images2(callback){ 
    for(var i = 0; i<enemy2.length; i++){ 
     var tile4 = new Image(); 
     imgs2.push(tile4); 

     tile4.onload = function(){ 
      imagesdraw=true; 
      if (imagesdraw == true) { 
       callback(); 
      } 
     } 
     tile4.src = enemy2[i]; 
    } 
} 

alors comment pourrais-je faire le drawImage plus simple, il ne semble pas tirer, de sorte qu'il est juste une ligne qui peut travailler pour plusieurs images à côté des différents y?

Répondre

2

Profitant d'être en mesure d'accéder à des propriétés via obj.["propertyToGet"], vous pouvez simplifier:

ontext.drawImage(imgs2[0],enemy.x+135,enemy.y,tileWidth,tileHeight); 
context.drawImage(imgs2[0],enemy.x+135,enemy.y2,tileWidth,tileHeight); 
context.drawImage(imgs2[0],enemy.x+135,enemy.y3,tileWidth,tileHeight); 
context.drawImage(imgs2[0],enemy.x+135,enemy.y4,tileWidth,tileHeight); 
context.drawImage(imgs2[0],enemy.x+135,enemy.y5,tileWidth,tileHeight); 
context.drawImage(imgs2[0],enemy.x+135,enemy.y6,tileWidth,tileHeight); 
context.drawImage(imgs2[0],enemy.x+135,enemy.y7,tileWidth,tileHeight); 
context.drawImage(imgs2[0],enemy.x+135,enemy.y8,tileWidth,tileHeight); 
context.drawImage(imgs2[0],enemy.x+135,enemy.y9,tileWidth,tileHeight); 

dans ce:

for(var i = 1; i <= 9; i++){ 
    var propertyName = ""; 
    if(i > 1){ 
    propertyName = "y" + i; 
    } 
    context.drawImage(imgs2[0],enemy.x+135,enemy[propertyName], tileWidth, tileHeight); 
} 

Il semble juste plus propre.

Questions connexes