【问题标题】:Checking intersection between two Path2D's检查两个 Path2D 之间的交集
【发布时间】:2013-05-30 13:45:27
【问题描述】:

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

【问题讨论】:

    标签: java path collision-detection intersection bounds


    【解决方案1】:
    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();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-18
      • 1970-01-01
      • 2016-01-20
      • 1970-01-01
      • 1970-01-01
      • 2018-06-22
      相关资源
      最近更新 更多