Массив возвращает ошибку, когда я играю в портретном режиме

Я сделал клон Flappy птицы. Он отлично работает, когда я играю в обычном режиме экрана. (1920×1080). Тем не менее, когда я играю в режиме Potrait, мой массив получает ошибку "undefined".

Я решил, что есть проблема, так как я использую windowHeight и windowWidth. Я делаю это в рамках p5.

this.hits = function (bird) {
         if (bird.y < this.top || bird.y > windowHeight - this.bottom) {
             if (bird.x > this.x && bird.x < this.x + this.w) {
                 return true;
             }
         }
         return false;
  }

Вот используемые переменные: (не фактический код)

Птица:

bird.y = windowHeight/2;
bird.x = windowWidth*0.2;

Трубы:

 var pipeSpace = random(250,600);
    var centerY = random(0,windowHeight/3.5);
    pipes.top = centerY - pipeSpace/2;
    pipes.bottom = windowHeight - centerY - (centerY + pipeSpace/2);
    pipes.x  = windowWidth*1.5; (this is the x  position(starting position) of the pipes)
    this.w = 40; (this is the width of the pipes)

Эта функция вызывается каждый кадр, чтобы увидеть, происходит ли столкновение, но после того, как я прохожу первую "трубу", игра прерывается и выдает ошибку, указанную выше.

Редактировать: Ошибка: pipes[i] is undefined

это та часть, где это происходит: на самом деле больше кода, но это никак не связано с моей проблемой.

var pipes = [];

function setup() {
  bird = new Bird();
  pipes.push(new Pipe());

}
function draw(){
    for (var i = pipes.length-1; i >= 0; i--){
      if(pipes[i].hits(bird)){
          gameOver = true;
        }
    }
}

0 ответов

Другие вопросы по тегам