我正在尝试测试与 Rectangle2D.Float 和 Point2D.Float 的碰撞。我有一个包含相机的 2D 世界(它根据相机的 AffineTransform 转换 graphics2D 画布)。然后我有一个包含子对象 Y 的对象 X 的列表。画布在相机转换为 X 的 AffineTransformation 的基础上进行转换,因此对象被渲染在正确的位置。我可以成功测试与对象 X 内的鼠标的碰撞,但我在测试子对象 Y 时遇到问题,因为 Y 对象“认为”它们位于位置 (0,0),即使它们位于其他位置,因为他们的父对象 X 被重新定位为 (200,200)。所以换句话说,对象 X 和 Y 出现在位置 (200,200),但碰撞发生在 (0,0) 而不是 (200,
我相信这与调用 AffineTransform.transform 和 AffineTransform.inverseTransform 的正确组合有关,但我无法将我的大脑包裹在正确的组合上。