我正在使用 HTML5 Canvas 进行一些测试。我正在尝试使用 for 循环在 Canvas 中绘制图像数组:
var blocks=["dirt","cactus","carvedSandstone","crackedStoneBrick","diamondOre","furnace","goldOre","grass","lapisOre","leaves","log1","sand","stone","stoneBrick","stoneMoss","woodOak"];
for(var i;i<=blocks.length;i++){
var id=document.getElementById(blocks[i]);
var x=i*32;
var y=0;
if(x>=1000){
y+=32;
}
ctx.drawImage(block,x,y);
上面的代码是我想要绘制的不同图像的数组,后跟一个 for 循环,该循环(理论上)应该使用 X 值= for 消失的次数来绘制数组中的每个项目通过*32。 if 语句只是在超出宽度时创建一个新行。出于所有意图和目的, Canvas 已正确设置。如果删除上面的代码并替换为以下代码,则可以正确绘制预期的图像。
dirt=document.getElementById("dirt");
ctx.drawImage(dirt,0,0);
如果我的表述含糊不清,如果您有任何疑问,请告诉我。
最佳答案
var id=document.getElementById(blocks[i]);
应该是var block=document.getElementById(blocks[i]);
,不是吗?
关于javascript - Canvas 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20696789/