什么原因阻止我的碰撞代码在 Phaser JS 中运行?
2014-03-12
2948
这是我第一次使用 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个回答
好吧,我过去也遇到过类似的 Phaser 重叠问题,它似乎从来没有像我在指南中看到的那样正常工作。因此,我没有传递回调,而是将重叠用作布尔值,并使用 if 语句在为真时调用该方法。在你的情况下,它看起来像:
if(this.game.physics.overlap(this.player1, this.player2))
overlapD(this.player1, this.player2);
当然,它需要多一行,但它可以避免代码损坏的麻烦,对吧?
2016rshah
2014-07-26