我正在試圖繪製六角形瓷磚的地圖。不過,我正在努力讓瓷磚正確排列,所以它們之間沒有空間。 其中一塊是我通常使用的瓷磚,另一塊是用另一塊瓷磚放大,以確保它不僅僅是抗鋸齒技巧。六角形瓷磚沒有正確排列,在它們之間的空隙
這是負責獲取每個圖塊的像素座標的代碼。顯然,每個奇數行的偏移量都有一些錯誤計算,但僅僅增加或減少一個像素只會增加間隙。
private static final float HEX_WIDTH = 97; // 139 for colored tiles
private static final float HEX_HEIGHT = (float) (Math.sqrt(3)/2 * HEX_WIDTH);
public Vector2 getHexCoordinates(Hexagon hex) {
float x = (float) HEX_WIDTH * hex.getGridX() * 3/4;
float y = (float) HEX_HEIGHT * (hex.getGridX()/2 + hex.getGridY());
y = (hex.getGridX() % 2 == 0) ? y : y + HEX_HEIGHT/2;
return new Vector2(x, y);
}
此外here's the tiles我使用的情況下,任何人都想知道。
我注意到** y **不會不斷增加(如gridx/y增加)。這是一個非常小的偏差,但取決於你如何完成地板/倒圓,它可能會造成差距。 – Terje
沒有地板/四捨五入。這些十六進制精靈在沒有進一步數學運算的情況下被賦予座標,繪圖功能也使用浮點數。此外,間隙的寬度不會以明顯的增加。從我所看到的檢查座標他們也出現重複出現。 – Askr
您是否嘗試舍入到1或2位小數?至少應該給你恆定的間距。 – Terje