2017-03-16 102 views
0

我正在制作JavaFX的2D游戏,当检测到碰撞时,由于玩家精灵被设置为矩形的填充并因此没有预期的边框,所以我得到的结果相当不准确。有没有办法让自己的形状变得尽可能精确?制作自定义形状JavaFX

我的另一个想法是检查是否碰撞的像素是透明的,如果是的话就不会结束游戏。有谁知道一种方式我可以得到碰撞像素的坐标,以便从那里我可以使用PixelReader来检查?

如果有人知道更好的方法,请让我知道!

感谢, 伊桑

回答

0

有不同的方式来做到这一点。这是我用得很成功的一种方式。我会制作打包盒,它们本身就是矩形。然后在碰撞检测过程中,我会遍历所有的撞击盒,看看它们是否与飞行弹丸的撞击盒相撞。

这可以让你做的是用较小的矩形填充复杂的形状。例如,一架飞机将有一个长水平矩形和一个较小矩形在中间穿过。

当前我正在使用libGDX。在libGDX中,我使用它们的Polygon对象,如此处所述。 https://stackoverflow.com/a/28540488/1490322我还没有在JavaFX中看到类似的功能,但将libGDX正在做的事情复制到JavaFX代码中并不难......他们的代码是开源的。