0
我有這個奇怪的問題,當我與圖像交互,例如Java圖像座標(0,0)在右下角
img.getRGB(imgx, imgy);
或
g.drawImage(img, x, y, x+16,y+16, imgx, imgy, imgx+16, imgy+16);
座標系被對於圖像(imgx,imgy)以右下角爲中心。
public class Terrain {
private final TerrainTile[][] terrainArray;
public Terrain(BufferedImage img) {
System.out.println("X: " + img.getWidth() + " Y: " + img.getHeight());
terrainArray = new TerrainTile[img.getWidth()][img.getHeight()];
for (int x = 0; x < img.getWidth(); x++) {
for (int y = 0; y < img.getHeight(); y++,) {
System.out.println("X: " + x + " Y: " + y + " Color: " + img.getRGB(x, y));
fillTerrain(x, y, img.getRGB(x, y));
}
}
}
private void fillTerrain(int x, int y, int color) {
switch (color) {
case 0xFF0000FF: // BLUE
terrainArray[x][y] = TerrainTile.WATER;
break;
case 0xFF00FF00: // GREEN
terrainArray[x][y] = TerrainTile.GRASSLAND;
break;
case 0xFF007F00: // DARK GREEN
terrainArray[x][y] = TerrainTile.FORREST;
break;
case 0xFF666666: // GREY
terrainArray[x][y] = TerrainTile.HILL;
break;
default: // BLANK
terrainArray[x][y] = TerrainTile.BLANK;
break;
}
}
隨着那場比賽的地圖從圖像I「掃描」始終開啓180° 當我把它打印出來
public void printTerrain() {
for (int x = 0; x < terrainArray.length; x++) {
for (int y = 0; y < terrainArray[0].length; y++) {
System.out.print(getTileID(x, y) + ", ");
}
System.out.println();
}
}
這是正常的,什麼是最好的梅索德防止這個?
你能否提供一個演示這種行爲的[MCVE](http://stackoverflow.com/help/mcve)? –