我正在创建一个小游戏,您可以在其中围绕 27*27 网格移动块。
网格的每个正方形为 16*16 像素。
我使用 awt Graphics 中的“drawLine”函数创建了网格。我创建了许多行来创建跨越 JFrame 窗口/画布的网格。我需要将网格中的每个正方形分配给某种坐标。
例如,如果您曾经研究过 Minecraft 纹理和/或制作过纹理包,您就会注意到 icons.png 或 texture.png。它是一个 256*256 的 16*16 方格,每个方格上都有一个图像。当 Notch(或现在的 Jens)需要将图片中的图像引用到代码中时。他基本上认为:
“哦,我需要从icons.png中的坐标(1, 3)找到图像。”
1 代表 16*16 的正方形,即第一个水平块右侧的 1 个正方形。而 3 代表 16*16 的正方形,即垂直向下 3 个正方形。
这张图表中的点代表我在说什么。右一格,下三格。
|1|2|3|4|5|6|
|2|3|4|5|6|7|
|3|•|5|6|7|8|
看,如何不尝试计算有多少 16 像素,而是让每个“1”坐标具有与 16 像素相同的值。
(1, 3) 16*16 的正方形必须是 (16, 48) 以像素为单位。
哦,天哪,我不善于解释事情。
这基本上是我为创建图表所做的一切。
for (int i = 16; i <= 432; i += 16){
/* Vertical Chart Lines: */ g.drawLine(i, 0, i, HEIGHT*2);
/* Horizontal Chart Lines: */ g.drawLine(0, i, WIDTH*2, i);
}
我正在使用 Java Canvas,并将首选尺寸设置为 HEIGHT*2/WIDTH*2。
HEIGHT*2 或 WIDTH*2 仅表示窗口/或画布末端的基于像素的坐标。
我需要做什么来分配这些新坐标?我必须制作一个新图表吗?
哦,请帮忙。