Значение параметра свойства getProperty () (undefined) не является строкой .ERROR: - PullRequest
0 голосов
/ 20 января 2020

Пожалуйста, помогите мне со столкновением в игре, здесь есть проблема. Он постоянно говорит мне, что объект не определен. Также говорится, что невозможно получить свойство "undefined" для элемента "cdoor1" и для "char" тоже.

CollisionDetector("cdoor1" , true);
CollisionDetector("char" , true);

function CollisionDetector(object, isDoor){

  var playerX = getXPosition("char");
  var playerY = getYPosition("char");
  var objectX = getProperty(object);
  var objectY = getProperty(object);

  var playerWidth = getProperty("char" , "width");
  var playerHeight = getProperty("char" , "width");
  var objectWidth = getProperty(object , "width");
  var objectHeight = getProperty(object , "height");

  if(playerX + playerWidth >= objectX && playerX <= objectX + objectWidth){

    if(playerY + playerHeight >= objectY && playerY <= objectY + objectHeight){

      if(isDoor && !gameOver){

        gameOver = true;
        setScreen("screen_lose");

      }

      else if(isDoor && !gameOver && !getProperty(object,"hidden")){
        hideElement("cdoor1");
        showElement("odoor1");

      }
    }
  }
}

Ответы [ 2 ]

0 голосов
/ 29 января 2020

Мне просто нужно было изменить позиции put getX и getY для объекта вместо getProperty (); Извините за мою ошибку и спасибо всем за помощь!

0 голосов
/ 20 января 2020

При использовании конструкторов вам необходимо добавить их как переменные с «новым», например, так:

var cdoor1 = new CollisionDetector("cdoor1" , true);
var char = new CollisionDetector("char" , true);

Подробнее об этом можно прочитать здесь, если вы будете sh: https://www.w3schools.com/JS/js_object_constructors.asp

...