检查两个 Path2D 之间的交集



我的游戏中有两个Path2D对象,一个用于玩家,一个用于boss的触手。我需要使用Path2D,因为我想让绑定与玩家/触手一起旋转,这样你就不会被它击中,即使你站在它旁边5个像素。这样做的问题是,我不能使用playerPath.intersects(tentaclPath),因为Path2D只能检查与矩形的相交,这是一个问题,因为它违背了在我的游戏中使用Path2D的目的。在不将其中一条路径转移到矩形的情况下如何检查它们是否相交?

  1. 确保你的触手和玩家是封闭的路径。(如果没有,它们将隐式关闭,当你认为不应该的时候,你会被触手击中。)
  2. 使用Area类来计算交点,看看它是否为空

(近似代码)

import java.awt.geom.Area;
...
boolean playerHitByTentacle(Tentacle t, Player p) {
    Area player = new Area(p.getPath2D());
    Area tentacle = new Area(t.getPath2D());
    player.intersect(tentacle);
    return !player.isEmpty();
}

最新更新