【发布时间】:2014-01-04 10:53:33
【问题描述】:
我正在做一个水下游戏,那里有一些废墟,由块组成。 目前,我正在检查与潜艇的多边形和废墟的每个块的碰撞,并使用一个函数返回我制作的矩形的顶点。
public static float[] rectangleToVertices(float x, float y, float width,
float height) {
float[] result = new float[8];
result[0] = x;
result[1] = y;
result[2] = x + width;
result[3] = y;
result[4] = x + width;
result[5] = y + height;
result[6] = x;
result[7] = y + height;
return result;
}
我认为这不是很有效,有些废墟超过 10 个方块,我不想检查单个物体的 10 次碰撞。 有没有办法将更多的多边形合并成一个?
这张图更能说明问题:
红色区域是多边形。
【问题讨论】:
-
您应该使用 Point 类(或您自己的类)的数组,而不是连续存储变量对的浮点数组。 docs.oracle.com/javase/7/docs/api/java/awt/Point.html
-
图片在哪里?我看不到
-
@Arash,我可以,无论如何-i.stack.imgur.com/7juGq.png
-
@Paul,如果您认为答案正确,您能接受吗?