javascript - Canvas 问题

标签 javascript html canvas for-loop drawimage

我正在使用 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);

如果我的表述含糊不清,如果您有任何疑问,请告诉我。

Full Code

最佳答案

var id=document.getElementById(blocks[i]);应该是var block=document.getElementById(blocks[i]); ,不是吗?

关于javascript - Canvas 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20696789/

相关文章:

javascript - 如何在页面加载时将字符串从代码隐藏发送到 javascript 中的变量?

javascript - 如何使用 KineticJS 限制图像拖动?

javascript - 模拟背景大小 : cover in canvas

javascript-canvas 未捕获错误 : INDEX_SIZE_ERR: DOM Exception 1

javascript - 如何使用 Angular/Typescript 获取波形音乐播放器

javascript - jquery 与动态 div 绑定(bind)

php - 我如何通过在 php 中使用 Class 从所有动态文本框中获取值

javascript - 计算几何Javascript

javascript - 如何制作一个计数器来检查用户使用java脚本重新加载网页的次数?

javascript - 将参数从 HTML 传递给 AJAX 函数