Phaser的新州

时间:2016-04-23 15:32:26

标签: javascript phaser-framework

我试图通过碰撞切换状态。因此,当玩家击中另一个精灵时,它应该切换状态,但它不会......

首先我在create:下声明播放器和enterDoor精灵:

playerSprite = this.game.add.sprite(50, 1700, 'player-front');
    player = new Player(playerSprite);
    this.game.physics.enable(player, Phaser.Physics.ARCADE);

enterDoor = this.game.add.sprite(332, 830, 'player-back');
    playerDoor = new Player(enterDoor);
    this.game.physics.enable(playerDoor, Phaser.Physics.ARCADE);

然后我试图在update:

下进行重叠
this.game.physics.arcade.overlap(player, playerDoor, this.enterHouse, null, this);

并且enterHouse是另一个功能:

enterHouse: function() {
  this.state.start('Menu');  
}

我在做什么'错误?

1 个答案:

答案 0 :(得分:0)

所以使用上面的代码我根本无法触发overlap。在播放器精灵body上停用moves后,overlap被触发。

player.body.moves = false;

您的enterHouse函数不需要接受这两个精灵,并且可以保持原样。

我不知道为什么这是必要的。