我有一个图形和一个玩家的边界框,我需要检测它们是否相交。 到目前为止我已经有了这个方法:
public boolean collides(int xOffset, int yOffset, Entity entity) {
return points.stream().anyMatch(point -> {
int minX = entity.getX() - xOffset,
minY = entity.getY() - yOffset,
maxX = minX + entity.getWidth(),
maxY = minY + entity.getHeight();
if (point.x >= minX && point.x <= maxX) {
return true;
}return false;
});
}
此方法检查图中是否至少有一个点包含在框中。
private void generateBridge(Point[] points) {
Dimension size = getSize(points);
for (Point point : points) {
int pixelX = point.x, pixelY = point.y;
this.points.add(new Point(pixelX + x, pixelY + y));
}
this.width = size.width;
this.height = size.height;
}
此方法获取图形的所有点并将它们放入列表。 “points”数组是 Function