【发布时间】:2015-06-18 12:17:10
【问题描述】:
基本上我一直在尝试做的是制作一个循环,循环通过一吨(仅 36 atm)的瓷砖,并将它们按顺序放置。虽然该部分有效,但它实际上并没有加载图像并显示图像。
使用console.log,我将问题缩小到它绘制图像时(或者至少我很确定这是问题所在)。
我尝试过切换局部变量和全局变量,但这似乎没有任何作用,而且我也切换了我所拥有的:
ctx.drawImage(loadTile, tileToLoadX, tileToLoadY);
收件人:
loadTile.onload = function() {
ctx.drawImage(loadTile, tileToLoadX, tileToLoadY);
};"
正如许多人建议的那样处理类似的问题。
var canvas = document.getElementById("mapcanvas");
var ctx = canvas.getContext("2d");
GTH = 3000;
GTW = 3000;
tileCountX = 6;
tileCountY = 6;
mapWidth = tileCountX * GTW;
mapHeight = tileCountY * GTH;
function imageSearch() {
for (u=1; u < tileCountY + 1; u++) {
for (i=1; i < tileCountX + 1;i++) {
tileToLoad = "x" + i + "y" + u;
tileToLoadX = i * GTW - GTW;
tileToLoadY = u * GTH - GTH;
console.log("Successfully found tile " + tileToLoad);
loadImg();
}
}
};
function loadImg() {
var loadTile = new Image();
loadTile.src = 'Top/x+y+/' + tileToLoad + ".png";
loadTile.onload = function() {
ctx.drawImage(loadTile, tileToLoadX, tileToLoadY);
};
console.log("Successfully loaded tile " + tileToLoad);
};
imageSearch();
另外请注意,画布应该与图块大小相同,并且 GTH 和 GTW 是所有图块的默认高度和宽度。
我们将不胜感激!谢谢!
【问题讨论】:
标签: javascript html canvas drawimage