javascript - 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));
}
}
解决方案
推荐阅读
- swift - RunLoop 与 DispatchQueue 作为调度程序
- javascript - 使用 vanilla JavaScript 控制 CSS 动画
- linux - 从 glob 表达式打开所有文件的函数/别名
- apache - 无法在端口:80 上运行 httpd 时重新启动 Apache
- python - Scrapy:AttributeError:'str'对象没有属性'setdefault'
- java - 将项目添加到在另一个活动中使用 baseAdapter 的 listView
- elasticsearch - Elasticsearch docker容器在启动时挂起而没有错误
- ios - 使用 PageController swift 移动到下一个 ViewMontroller
- python - 将 Gtk.Widget 放在带有顶部填充的 Box 中
- javascript - 单击时如何更改表格中的单元格值?