首页 > 解决方案 > Phaser.js 街机物理重叠不起作用

问题描述

我之前已经成功地使用移相器街机物理对象上的重叠来启用碰撞检测。碰撞发生在飞向玩家和玩家的激光之间。我已经修改了游戏,让多个“玩家”同时扮演 AI 来躲避激光。我现在有一个数组,而不是将单个玩家表示为相位器物理对象。但是现在,我的旧命令不起作用。出于某种原因,它认为玩家和激光(长矛)在激光产生的那一刻发生了碰撞,但事实并非如此。这导致玩家立即被杀死,我不明白为什么。我以前有效的实现:

this.physics.add.overlap(this.player, this.spears[nSpears-1][1], this.die);

我当前的代码:

for (var i = 0; i < this.players.length; i++){
    if (this.players[i][1] == 'alive'){
        this.physics.add.overlap(this.players[i][0], this.spears[nSpears-1][1], this.die(i));
    }
}

标签: javascriptphaser-framework

解决方案


推荐阅读