如果子弹会与墙壁碰撞,请立即检查

时间:2016-10-04 15:12:33

标签: phaser-framework

enter image description here

目前,如果子弹碰撞碰撞墙,我会检查update()

game.physics.arcade.collide(weapon.bullets, collisionLayer, collisionHandler, processCallback, this);

这个有效!但是,当我设置weapon.bulletSpeed = 2000;非常高(超过900)时,这不再起作用了,子弹"隧道"穿过碰撞墙。

我正在努力实施像步枪一样的狙击手,几乎没有时间让子弹击中障碍物。所以我想知道如何在玩家射击时计算子弹与碰撞墙的碰撞坐标。我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

子弹可能会逐步走向大而不会实际相交。

考虑使用y = mx + b形式的线来表示项目符号的路径,然后是表示墙的两条垂直线。

对于子弹线和两条墙线中的每一条的交叉点进行代数求解。如果有解决方案,那么子弹就会撞墙。

答案 1 :(得分:0)

我在移相器中找到了一个构建解决方案。该演示展示了它的工作原理:

http://phaser.io/examples/v2/tilemaps/tilemap-ray-cast