Ошибка “WebGL: INVALID_ENUM: activeTexture: texture unit out of range”

362
30 декабря 2016, 13:03

Всем доброго времени суток. Буду благодарен за помощь.

Пишу игру на PIXI.js. Суть такова, что все работает как задумано. Но в какой-то момент в консоли всплывает warning WebGL: INVALID_ENUM: activeTexture: texture unit out of range и текстуры в игре немного начинают мигать. Начинается данная вакханалия в непонятный момент и в этот же момент может пропасть и так по кругу.

Есть класс для создания монстра и его метод который двигает монстра:

    function Monster (monsterImages, startX) {
    this.hideEnemy = false;
    var frames = [];
    for (var i = 0; i < monsterImages.length; i++) {
        var texture = Texture.fromImage(monsterImages[i]);
        frames.push(texture);
    }
    this.movieclip = new PIXI.extras.AnimatedSprite(frames);
    this.movieclip.scale.x = -1;
    this.movieclip.anchor.set(0.5);
    this.movieclip.width = 170;
    this.movieclip.height = 140;
    this.movieclip.x = startX;
    this.movieclip.y = getRandomIntValue(Position.START_Y + this.movieclip.height / 2, Position.END_Y + this.movieclip.height / 2);
    this.movieclip.animationSpeed = 0.4;
    this.movieclip.play();
    gameScene.addChild(this.movieclip);
}
Monster.prototype.updatePosition = function () {
    if (this.movieclip.x > Position.END_X - this.movieclip.width / 2) {
        this.movieclip.x -= Position.STEP_X;
    } else {
        // this.hideEnemy = true;
        this.movieclip.x = Position.START_X;
        this.movieclip.y = getRandomIntValue(Position.START_Y + this.movieclip.height / 2, Position.END_Y + this.movieclip.height / 2);
    }
};

Я создаю 4 монстров

for (var i = 0; i < 4; i++) {
    enemy[i] = new Monster(monsterSprites[i], 1920 + 170 + gapBetweenBirds);
    gapBetweenBirds+=500;
}

Потом двигаю методом, и если он выходит за сцену, то вырезаю из массива этого монстра и вставляю туда же нового.

for (var i = 0; i < enemy.length; i++) {
        enemy[i].updatePosition();
        if (enemy[i].hideEnemy) {
            enemy.splice(i, 1, new Monster(monsterSprites[getRandomIntValue(0,monsterSprites.length - 1)], 1920 + 170));
        }
    }

Проблема появилась когда я начал заменять монстра в массиве. Думаю проблема кроется где-то там, но в связи с небольшим опытом не могу ее отловить.

READ ALSO
Помогите укоротить функцию в javascript?

Помогите укоротить функцию в javascript?

Можно ли как нибудь переписать эту функцию с помощью цикла?

348
Передача номера категории в query_post

Передача номера категории в query_post

Сайт работает на wordpressЕсть цикл

341
Слайдер Owl Carousel неправильно работает в Google Chrome

Слайдер Owl Carousel неправильно работает в Google Chrome

На странице в самом низу используется слайдер Owl Carousel 2Для смены слайдов используются эффекты fadeIn/fadeOut

540
Как сделать, чтобы при клике на заголовок меню развернулось/свернулось подменю?

Как сделать, чтобы при клике на заголовок меню развернулось/свернулось подменю?

Как сделать, чтобы при клике на заголовок меню развернулось подменю, и так же закрывалось при клике?

464