HTML5 Canvas,Tileset 不会显示

我的图块集不会出现。问题是什么?

这是一个代码:

<!DOCTYPE html>
<html>

<head>
    <style>
    body {
        margin: 0px;
        padding: 0px;
    }

    #mapa {
        border: solid 1px;
    }
    </style>
</head>

<body> <canvas id="mapa" height="500px" width="500px"></canvas>
    <script>
    var canvas = document.getElementById('mapa');
    var ctx = canvas.getContext('2d');
    var trawa = new Image();
    trawa.src = "trawa.png";
    var mapa = [
        [0, 0, 0, 0, 0, 1, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0]
    ];
    var posX = 0;
    var posY = 0;
    for (var x = 0; x < mapa.length; x++) {
        for (var y = 0; y < mapa[x].length; y++) {
            if (mapa[x][y] == 0) {
                ctx.drawImage(trawa, posX, posY, 32, 32);
            }
            posX += 50;
        }
        posX = 0;
        posY += 50;
    }
    </script>
</body>

</html>
狮子座

这里的问题是当您尝试绘制图像时尚未加载图像,您需要做的是等到它加载。

为此,您可以使用trawa.onload以下方法:

<!DOCTYPE html>
<html>
<head>
  <style>
  body {
    margin: 0px;
    padding: 0px;
  }
#mapa
{
  border: solid 1px;
}
  </style>
</head>
<body>

<canvas id = "mapa" height = "500px" width= "500px"></canvas>

<script>

var canvas = document.getElementById('mapa');
var ctx = canvas.getContext('2d');

var trawa = new Image();
trawa.src = "trawa.png";


var mapa = [
[0,0,0,0,0,1,0,0],
[0,0,0,0,0,0,0,0]
];
var posX = 0;
var posY = 0;

trawa.onload = function (){
  for (var x = 0; x < mapa.length; x++){

    for (var y = 0; y < mapa[x].length; y++)
    {

      if (mapa[x][y] == 0)
      {
        ctx.drawImage(trawa, posX, posY, 32,32);
      }

  posX+=50;

    }
    posX = 0;
    posY+=50;
  }

}

</script>

</body>
</html>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章