2011-12-19 51 views
0

我正在研究java中的Survial遊戲,並且正在研究地圖gen。我正在尋找一種方式來製作地圖的圖像。 我有一個所有塊的ArrayList,並且想使它如此,如果在地圖上的0,0塊如果例如grass,我可以將此圖像上的0,0像素設置爲綠色,所以在其他塊上。如何在Java中製作圖片?

編輯---- 的人都說它不清楚是什麼我試着問,這是講的那種圖像IM:

enter image description here

當墨綠色的草時,淺綠色是樹木,黃色是沙子,藍色是水。

+0

嗯,恕我直言,你的問題是不清楚的... – Constantinius 2011-12-19 17:14:16

+0

嗯,如何解釋它,我想製作一個由我自己的遊戲生成的地圖的自上而下的圖像,所以我可以看到它可以製作什麼樣的地圖 – 2011-12-19 17:15:50

+1

試着重新思考你的問題,可能會提供更多關於你正在使用的圖形庫的更具體的信息。你也可以參考FAQ(http://stackoverflow.com/faq)來看看如何編寫一個可能是回答。您也可以隨時更新您的問題。乾杯。 – Constantinius 2011-12-19 17:20:08

回答

1
private static void write(int id) { 
     try { 
      BufferedImage bi = ImageIO.read(new URL("http://xyz.com/abc.png")); 
      BufferedImage bi2 = resizeImage(bi, bi.getType()); 
      Graphics g = bi2.getGraphics(); 
      g.drawString("Hello", 20, 20); 
      ImageIO.write(bi2, "png", new File("out"+id+".png")); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 

    private static BufferedImage resizeImage(BufferedImage originalImage, int type){ 
     BufferedImage resizedImage = new BufferedImage(400, 400, type); 
     Graphics2D g = resizedImage.createGraphics(); 
     g.drawImage(originalImage, 50, 50, 248, 248, null); 
     g.dispose(); 
     return resizedImage; 
    } 

以上是我用過的東西的快照。它只是一個需要提煉的原型。基本上你可以在內存中創建一個緩衝圖像並寫入文件或將該圖像放入另一個組件(如jlabel)中。

一旦你有圖形參考,你幾乎可以用它作爲畫布。

0

如果你想使用一些漂亮的東西,試試libgdx(http://code.google.com/p/libgdx/)。它爲創建漂亮的東西提供了很好的支持,並且還支持一些流行的地圖編輯器。 我目前正在研究一個更復雜的卡板,它附帶一些來自大學的其他人,我們決定採用這種方法,並針對java繪圖API。