gpt4 book ai didi

两个 Shape 对象之间的 Java 碰撞检测?

转载 作者:搜寻专家 更新时间:2023-10-30 19:53:40 24 4
gpt4 key购买 nike

我想知道判断一个 Shape 对象是否与另一个形状相交的最佳方法。目前,只要涉及与矩形相交的形状或反之,我的游戏中的碰撞检测就会得到解决。我遇到的问题是 Shape 类中的 intersects() 方法只能将 Rectangle 或 Point 作为参数,而不能将另一个 Shape 作为参数。有没有一种有效的方法来测试两个 Shape 对象是否以任何方式重叠?我尝试的一种方法是使用 for 循环生成点区域以测试它们是否在形状中,然后构建一个 Point 对象数组以发送到另一个形状进行测试,但这显着降低了我的帧率,因为所有不必要的比较。

我在这里找了又找类似的东西,但没有找到任何东西。如果这是重复的,请提前道歉。

最佳答案

未测试,但为什么不:

import java.awt.geom.Area;

...

public static boolean testIntersection(Shape shapeA, Shape shapeB) {
Area areaA = new Area(shapeA);
areaA.intersect(new Area(shapeB));
return !areaA.isEmpty();
}

Area 实现了 Shape,但添加了一些可能有用的方法

关于两个 Shape 对象之间的 Java 碰撞检测?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15690846/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com