我正在尝试为Java游戏制作等距地图,但我找不到这样做的方法。我需要为等距图的每个多边形添加一个JLabel
,所以我可以为每个位置使用paint()
。我如何为我画的每个多边形添加JLabel
?我拿不到。我已经有了绘制等距地图每个位置的算法,如下所示:
//L is the width of the map (that will be the framw width)
//N will be the number of COLUMN, like N*N will be the total number of positions.
//The first position (a,b) that will be
a=L / (2*N+1)
b=a . tan(30º
for (int y = 0; y < N; y++) {
if (y % 2 == 0) { // Se y é PAR
for (int x = 0; x < N; x++) {
Polygon p = new Polygon();
p.addPoint(x * a * 2 + a, y * b);
p.addPoint(x * a * 2 + 2 * a, y * b + b);
p.addPoint(x * a * 2 + a, y * b + 2 * b);
p.addPoint(x * a * 2, y * b + b);
g.drawPolygon(p);
}
} else { // if Y is odd
for (int x = 0; x < N; x++) {
Polygon p = new Polygon();
p.addPoint(x * a * 2 + 2 * a, y * b);
p.addPoint(x * a * 2 + 3 * a, y * b + b);
p.addPoint(x * a * 2 + 2 * a, y * b + 2 * b);
p.addPoint(x * a * 2 + a, y * b + b);
g.drawPolygon(p);
}
}
}
提前感谢各位
布局和绘图真的很不一样。布局与精确定位无关。你也可以在你想要的位置对图形对象使用drawChars,或者将其转换为Graphics2D对象并使用drawString。