什么阻止我的碰撞代码在Phaser JS中工作?

时间:2014-03-12 18:02:06

标签: javascript phaser-framework

我第一次使用Phaser JS游戏框架。我试图确定两个精灵何时重叠或碰撞。以下是我试图这样做的方法:

在更新功能中:

update: function() {
    this.game.physics.collide(this.player1, this.player2, this.CollisionD, null, this); 
    this.game.physics.overlap(this.player1, this.player2, this.OverlapD, null, this);
}

然后在我的CollisionD函数中,这是我的碰撞处理程序,我尝试过:

function CollisionD(obj1, obj2) {
    alert('collision!');
}

我试过了:

function CollisionD(player1, player2) {
    alert('collision!');
}

我的重叠检测也是如此。我究竟做错了什么?控制台中也没有显示错误消息。

1 个答案:

答案 0 :(得分:1)

好吧所以我过去曾遇到类似Phaser重叠的问题,而且我在导游中看到的方式对我来说似乎没有正常工作。因此,我没有传递回调,而是将重叠用作布尔值,并使用if语句调用方法(如果为true)。在你的情况下看起来像:

if(this.game.physics.overlap(this.player1, this.player2))
    overlapD(this.player1, this.player2);

当然需要多一行,但它可以省去破坏代码的麻烦,对吗?