0
我在PIXI.js上编写游戏。底线是一切按预期运作。但是在控制台的某个位置会弹出一个警告“WebGL:INVALID_ENUM:activeTexture:纹理单元超出范围”,并且游戏中的纹理有点闪光。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);
}
};
创建4怪物:
for (var i = 0; i < 4; i++) {
enemy[i] = new Monster(monsterSprites[i], 1920 + 170 + gapBetweenBirds);
gapBetweenBirds+=500;
}
然后我MOV通过法“updatePosition” E他们,如果是出现场,然后我砍这个怪物的阵列出来,并插入新:
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));
}
}
的问题来了,当我开始替换阵列中的怪物。我认为问题在那里,但由于一点经验,我无法赶上她。