Rectangle2D.Float と Point2D.Float との衝突をテストしようとしています。カメラを含む 2D ワールドがあります (カメラの AffineTransform に基づいて graphics2D キャンバスを変換します)。次に、サブオブジェクト Y を含むオブジェクト X のリストを作成します。キャンバスは X の AffineTransformation へのカメラの変換の上に変換されるため、オブジェクトは正しい位置にレンダリングされます。オブジェクト X 内のマウスとの衝突を正常にテストできますが、サブオブジェクト Y のテストで問題が発生しています。これは、Y オブジェクトが、他の場所に配置されているにもかかわらず、位置 (0,0) にあると「考える」ためです。 (200,200) と言うように再配置された親オブジェクト X。つまり、オブジェクト X と Y は (200,200) の位置に表示されますが、衝突は (200, 200) ではなく (0,0) で発生します。
AffineTransform.transform と AffineTransform.inverseTransform の呼び出しの正しい組み合わせに関係していると思いますが、正しい組み合わせに頭を悩ませることはできません。