【发布时间】:2026-02-08 08:20:02
【问题描述】:
我正在制作一个基于 JavaFX 的游戏,该游戏使用宇宙飞船射击无人机来保卫你的基地。我想在图像周围包裹一个形状来为它创建一个碰撞箱。
这将允许激光在无人机接触碰撞箱时对其造成伤害。它将使游戏看起来比激光击中不可见的墙壁(形状的尺寸)更好,而不是实际的图像。
我的问题是,有没有 JavaFX 提供的内置库来解决这个问题,还是必须使用微积分公式来解决这个问题?
我试图查看 JavaFX 的 API,但似乎找不到任何有用的东西。
// Getting the images for the shapes
Image spaceCity = new Image("com/images/spaceCity.jpg");
Image spaceShip = new Image("com/images/spaceShip.png");
// Making the graphics
Rectangle space_Ship = new Rectangle(0, positionOfShipY, 191, 300);
Rectangle background = new Rectangle(0, 0, STAGE_WIDTH, STAGE_HEIGHT);
我这里有我的例子(我不知道为什么堆栈溢出不允许我上传图片):
https://docs.google.com/document/d/1A8HJ61jhthBhd7wr6xrZNLlsTcQJNLUhTzrucvNY3BY/view?usp=sharing
【问题讨论】:
-
如果您使用带有不可见背景的
png会发生什么? -
澄清一下,船在背景之上,它周围的红框(在谷歌文档截图中)并不是实际的形状尺寸。船的背景已经看不见了。这不是我需要为它做这件事的船,而是我尚未为其添加图像的无人机。船会开枪。
-
飞船将使用 PathTransition 对象将激光(矩形)移向目标。
标签: java image javafx shapes game-development