我正在尝试用 Java 绘制等距图块并使用鼠标光标实现图块拾取系统。我使用我找到的这些数学公式绘制了瓷砖,并适应了我的瓷砖纹理,您可以在下面找到。瓷砖是 64x64 像素,但即使我使用 64x64 精灵绘制它们,平面瓷砖也只有 32 像素的高度。

地图是一个简单的二维数组,其中我的图块由它们的 id 表示。
这是我使用 toIso() 函数将地图坐标转换为屏幕坐标的类。我将表示屏幕上光标位置的屏幕坐标传递给 toGrid() 函数以将它们转换为地图坐标。
public class Utils {
private static int TILE_WIDTH = Tile.TILE_WIDTH;
private static int TILE_HEIGHT = Tile.TILE_HEIGHT;
private static int TILE_WIDTH_HALF = TILE_WIDTH/2;
private static int TILE_HEIGHT_HALF = TILE_HEIGHT/2;
private static int TILE_WIDTH_QUARTER = TILE_WIDTH_HALF/2;
private static int TILE_HEIGHT_QUARTER = TILE_HEIGHT_HALF/2;
public static int[] toIso(int x, int y){
int i = (x - y) * TILE_WIDTH_HALF;
int j = (x + y) * TILE_HEIGHT_QUARTER; …Run Code Online (Sandbox Code Playgroud)