JavaScript drawImage()不';行不通

JavaScript drawImage()不';行不通,javascript,draw,game-engine,Javascript,Draw,Game Engine,我正在尝试编写一些简单的游戏,我被困在画布上绘制一个资产。我制作了一个AssetLoader“类”,用于加载图像并将其保存为图像对象。首先,我只想画一些加载的资产。但drawImage函数并没有显示任何内容……我知道我的图像是通过在控制台上写入对象加载的,它给了我以下输出: var canvas = document.getElementById('game'); var context = canvas.getContext('2d'); if(!context){ a

我正在尝试编写一些简单的游戏,我被困在画布上绘制一个资产。我制作了一个AssetLoader“类”,用于加载图像并将其保存为图像对象。首先,我只想画一些加载的资产。但drawImage函数并没有显示任何内容……我知道我的图像是通过在控制台上写入对象加载的,它给了我以下输出:

  var canvas = document.getElementById('game');
  var context = canvas.getContext('2d');
  if(!context){
      alert('Upgrade browser');
  }else{
      startGame();
  }

  function startGame(){
      AssetsLoader.getAllAssets();
      console.log(AssetsLoader.images.player); // image is loaded
      context.drawImage(AssetsLoader.images.player, 0, 0); // doesn't work
  }
编辑: 好吧,糟糕,我把“../”放在图像路径前面,因为我的项目结构如下所示:

assets
    images
       player.png
js
    script for AssetsLoader

我想我必须下一层才能访问图像。

实际上我只是在画布上修复了这个问题。固定代码为:

  var canvas = document.getElementById('game');
  var context = canvas.getContext('2d');
  var img1 = new Image();
  img1.src = "../assets/images/player.png";

  context.drawImage(img1,100,100);

之所以使用img1变量,是因为它将img元素添加到画布中。然后使用img1.src设置图像的源。在执行drawImage()时,首先插入img1,其中包括图像源。第二个参数是X位置,第三个参数是Y位置。

实际上我刚刚在画布上修复了这个问题。固定代码为:

  var canvas = document.getElementById('game');
  var context = canvas.getContext('2d');
  var img1 = new Image();
  img1.src = "../assets/images/player.png";

  context.drawImage(img1,100,100);

之所以使用img1变量,是因为它将img元素添加到画布中。然后使用img1.src设置图像的源。在执行drawImage()时,首先插入img1,其中包括图像源。第二个参数是X位置,第三个参数是Y位置。

我认为暹罗的答案使canvas drawImage()函数变得更加复杂。我认为暹罗的答案使canvas drawImage()函数变得更加复杂。