Phaser HTML5 具有特定分数的背景变化

Phaser HTML5 Background change with specific score

我正在尝试在玩家达到 50 分或任何数字后更改移相器游戏的背景,背面是 png。这可能吗?

这是我的代码:

this.backgroundGame = this.game.add.tileSprite(0, 0, 800, 600, 'background');

     if (this.score == 3)
        this.backgroundGame = this.game.add.tileSprite(0, 0, 800, 600, 'background1');

但这肯定根本不起作用,如果我在更新函数中包含 if,它会带来 background1 并覆盖整个游戏,如果我在创建函数中包含它,它就会被忽略。有什么建议吗?对不起,我是新手,还在学习。另外英语不是我的第一语言,所以如果我的问题不清楚,请告诉我,谢谢。

在创建方法中,您必须设置两个(或多个)背景。正如在 Phaser 层中一样 CSS,原始背景(第一个)必须是创建中的最后一个:

--- 创建:

this.background2 = this.game.add.tileSprite(0, 0, 800, 600, 'background1');
this.backgroundOriginal = this.game.add.tileSprite(0, 0, 800, 600, 'background');

然后在update中,当你的条件为真时,你必须将alpha = 0(不可见)设置为原始背景,并且后面的层将可见。

--- 更新:

if(this.score == 3) {
    this.backgroundOriginal.alpha = 0;
}

PD.:我的英语也不够好...... pero supongo que el inglés españolizado si lo entiendes bien,不拉法? ;)

您可以在 preload() 方法中加载您需要的所有背景。

  this.game.load.image('background', 'images/bg1.png');
  this.game.load.image('background2', 'images/bg2.png');

稍后在游戏中添加一个像背景一样的精灵:

this.backgroundSprite = this.game.add.tileSprite(0, 0, 800, 600, 'background');
this.backgroundSprite = this.game.add.sprite(0, 0,'background');

什么时候合适:

if (this.score == 3)
    this.backgroundSprite.loadTexture('background1');

当你不总是向游戏词添加新对象时,你会有更好的表现。