尝试在蛇游戏中放置图像时出现“ NS_ERROR_NOT_AVAILABLE”

时间:2019-01-07 22:49:10

标签: javascript html5-canvas

我编写了一个功能齐全的蛇游戏。我用圆弧画了一个苹果,但我想改变它并放一个苹果的图像。现在,它不起作用,并且我收到以下错误:NS_ERROR_NOT_AVAILABLE:

有人可以向我解释我的错误在哪里以及如何解决吗? :/ 谢谢 :) PS:对不起,我的英语,我是比利时人;)

完整的工作代码在这里: https://codepen.io/graphtylove/pen/MZXegG

    function Apple(position) {
        this.position = position;
        this.draw = function() {
          const radius = blockSize / 2;
          const x = this.position[0] * blockSize + radius;
          const y = this.position[1] * blockSize + radius;
          ctx.save();
          ctx.drawImage(foodImg,x,y );
          ctx.restore();
        };

        this.setNewPosition = function() {
          const newX = Math.round(Math.random() * (widthInBlocks - 1));
          const newY = Math.round(Math.random() * (heightInBlocks - 1));
          this.position = [newX, newY];
        };
        this.isOnSnake = function(snakeToCheck) {
          let isOnSnake = false;

          for (let i = 0; i < snakeToCheck.body.length; i++) {
            if (
              this.position[0] === snakeToCheck.body[i][0] &&
              this.position[1] === snakeToCheck.body[i][1]
            ) {
              isOnSnake = true;
            }
          }
          return isOnSnake;
        };
      }

我想要的是苹果的图像,而不是我实际的红色圆圈。但是当我更改代码时,游戏崩溃了。

1 个答案:

答案 0 :(得分:0)

您的代码使用各种外部文件,并且它们在Codepen上不起作用。如果您使用Codepen创建网站,那么外部文件将无法工作,除非它来自URL,例如google.com/javascriptfile.js。如果使用的是Notepad ++,Notepad或其他下载的软件,则计算机上的文件可能会起作用。例如,<img src='myFiles/myImage.png'>在Codepen和类似网站上不起作用。但是,如果文件夹“ myFiles”与您的.html文件位于同一文件夹中,则Notepad ++和类似的应用程序将找到该文件。相反,在使用Codepen和类似网站时,必须提供URL。您可以将图片/脚本上传到网站,然后使用网站内的文件。这也适用于<script>标签和其他使用src=的标签。如果这没有任何意义,请在评论中告诉我!如果有帮助,请将此答案标记为正确。