p5.js LoadImage(); возвращает null с ошибкой ‘SCRIPT5007: SCRIPT5007: не удается получить свойство ‘x’ с неопределенной или нулевой ссылкой’

#javascript #p5.js #loadimage

#javascript #p5.js #loadimage

Вопрос:

В настоящее время я перекодирую игру, и у меня возникли проблемы с механизмом рендеринга. я думаю, что проблема в моих путях к файлам, потому что старая (и идентично закодированная) версия работает просто отлично.

Я попытался переместить программу на другой диск, изменив имя, включая полный путь к файлу, включая относительный путь к файлу, и я попытался поместить выходные данные в консоль отладки, что привело только к сбою консоли. Я также настроил проверку, которая гарантирует, что программа не отображает плитку, когда ее значение равно null, но это просто делает так, что она ничего не делает.

это путь к файлу для текстур: D:programsHTML5_JavaScriptmipmapassetstexturestileSetSand

это мой текущий код для импортера текстур:

 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. Unable to get property 'x' of undefined or null reference это означает, что где-то у вас есть объект, и вы пытаетесь получить доступ к x его свойству, но объект равен нулю или не определен. Есть ли другая часть вашего кода, к которой вы пытаетесь получить доступ x ?

2. Я думаю, что функция LoadImage () вызывает эту проблему, поскольку она пытается получить доступ к свойствам изображения внутри пути к файлу, но возвращает null (кроме того, она выдает эту ошибку примерно два раза в секунду)

3. попробуйте изменить / на \

4. кажется, что он просто ничего не находит по указанному пути к файлу, потому что точно такой же код отлично работает для старой версии. (вы имеете в виду правильный путь к файлу?)

5. Вы пытаетесь это сделать на сервере или локальном сервере? LoadImage не работает в локальной среде. Это немного отличается от обработки (с помощью которой был собран ваш старый проект?). Дополнительную информацию можно найти здесь p5js.org/examples/image-load-and-display-image.html

Ответ №1:

Похоже, что я использовал другую функцию setup () в другом месте проекта, и это привело к тому, что setup () здесь не работал. Я обнаружил это, когда поместил вызывающие переменные в свою setup (), что привело к тому, что эти переменные стали null, поскольку они не вызывались должным образом.