2016-12-29 6 views
0

PIXI.js에 게임을 쓰고 있습니다. 최종선은 모든 것이 의도 한대로 작동한다는 것입니다. 그러나 콘솔의 어느 시점에서 "WebGL : INVALID_ENUM : activeTexture : 텍스처 유닛이 범위를 벗어났습니다."라는 경고 메시지가 나타나고 게임의 텍스처가 약간 깜박입니다. 내가 4를 만들경고 Pixi.js의 게임에서 콘솔의 "WebGL : INVALID_ENUM : activeTexture : 텍스처 유닛이 범위를 벗어났습니다."

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); 
    } 
}; 

:

이 오류는 이상한 시간에 동시에 나타납니다 괴물 이동 괴물과 그의 방법을 작성하기위한 클래스가있다

을 잃었다 괴물 : 그럼 난 MOV

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

방법 "updatePosition"에 의해 그들을 전자, 그것이 장면 벗어나면, 그때는이 괴물의 배열로 잘라, 내가 시작했을 때 문제는 함께 제공되는 새로운 :

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)); 
     } 
    } 

삽입 배열에있는 몬스터를 교체하십시오. 나는 그 문제가 저기에 있다고 생각하지만, 작은 경험으로 인해 나는 그녀를 붙잡을 수 없다.

답변

0

문제를 결정했습니다. 렌더링에서 사용되기 때문에 배열에서 삭제 한 객체를 삭제해야합니다.

나는 추가

그래서 내가 가지고있는 Monster.prototype.updatePosition에서

this.movieclip.destroy(); 
this.movieclip = null; 

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.destroy(); 
     this.movieclip = null; 
    } 
};