我将如何简化它,使其具有相同的效果?
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);
我将“ imgs2”这样保存在数组中
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];
}
}
那么我将如何简化
drawImage
,使其看起来不那么引人注目,以至于只有一行可以与不同y一起用于多个图像? 最佳答案
利用能够通过obj.["propertyToGet"]
访问属性的方法,可以简化以下操作:
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);
到这个:
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);
}
看起来更干净了。