p5.j​​s loadImage();返回带有错误“ SCRIPT5007的空值:SCRIPT5007:无法获取未定义或空引用的属性” x”

时间:2019-03-26 10:23:44

标签: javascript p5.js loadimage

我目前正在重新编码游戏,并且渲染引擎出现问题。我认为问题出在我的文件路径中,因为旧的(并且编码相同)版本工作得很好。

我尝试将程序移至另一个磁盘,更改名称(包括完整文件路径,包括相对文件路径),并且ive试图将输出放入调试控制台,这只会使控制台崩溃。 我还设置了一项检查,以确保程序在其值为null时不显示磁贴,但这只是为了使其不执行任何操作。

这是纹理的文件路径: D:\ programs \ HTML5_JavaScript \ mipmap \ assets \ textures \ tileSetSand

这是我当前的纹理导入器代码:

tileSetSand=[];
players=[];

function setup(){

    for(i=0;i<115;i++){

        print(i);
        tileSetSand[i]=loadImage('D:/programs/HTML5_JavaScript/mipmap/assets/textures/tileSetSand/tile ('+i+').PNG');

    }

    for(i=0;i<2;i++){

        players[i]=loadImage('D:/programs/HTML5_JavaScript/mipmap/assets/textures/player ('+i+').PNG');

    }
}

这是旧的有效代码

function setup() {

  tileSetSand=[];

  for(i=0;i<117;i++){

    tileSetSand[i]=loadImage('D:/maart/Documents/Processing/mipmap_local/assets/sprite ('+i+').PNG');

  }

  //loading all the images and sprites into an array

  createCanvas(1000,1000);

}

这是我利用图像的位置(this.texture为3)

display : function(){

    if(tileSetSand[this.texture]!=null){

        image(tileSetSand[this.texture],this.xPos,this.yPos,20,20);

    }

  },

此功能的预期输出是将this.texture指定的图像绘制到画布的xPos,yPos处。 但是,事实并非如此。 我不知道为什么。

1 个答案:

答案 0 :(得分:0)

似乎我在项目的其他地方使用了另一个setup()函数,这导致此处的setup()无法正常工作。 当我将变量调用者放入setup()时,我发现了这一点,由于这些变量未正确调用,这些变量变为空。