我一直在網上尋找嘗試找到一個完整的解決方案,但到目前爲止,我只能找到不適合在一起的作品。隔離動畫和顯示器的精靈片子圖像
我正在尋找一個程序,可以看一個圖像文件,通過文件循環,並隔離精靈,然後保存它們。之後,我需要一種方法重新訪問該精靈信息,以便我可以顯示它,但是我希望能夠基於我自己的公式顯示這些圖塊。想象一場像小地形磚一樣的高級戰爭遊戲。我希望能夠半隨機地顯示這些圖塊,但在我自己的參數內。
我還希望能夠加載一個與上面的圖像具有相同大小精靈的不同圖像文件,但將這些圖像用於動畫。
所以我有2個精靈表有一堆64x64像素精靈。其中一個圖像文件就是我的所有地形圖塊。另一個是我的單位瓦片。我希望能夠讀取精靈並以任何方式展示給我。
我不能爲我的生活弄清楚這種方法。我研究過Subimaging和drawImage,但我無法讓他們正確地存儲或重新顯示信息。
謝謝。
編輯:所以我簡化了我的問題,爲我自己和爲了其他人的緣故。
爲什麼不能運行下面的代碼?
package animation;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class AnimTest
{
public static void main(String[] args)
{
AnimTest test = new AnimTest();
test.go();
}
public void go()
{
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
MyDrawP drawP = new MyDrawP();
frame.getContentPane().add(drawP);
frame.setSize(500,500);
frame.setVisible(true);
}
}
class MyDrawP extends JPanel
{
public void drawSprite(Graphics g)
{
try {
BufferedImage bigImg = ImageIO.read(new File("C:/Users/scott/Desktop/Personal Work/Pixel Art/terrain.png"));
final int width = 64;
final int height = 64;
int x = 0;
int y = 0;
bigImg.getSubimage(x, y, width, height);
g.drawImage(bigImg, 5, 5, this);
} catch (IOException e) {
e.printStackTrace();
}
}
}
對不起,我不知道如何適當地格式化代碼塊。
現在有了這段代碼,我希望MyDrawP類能夠查看我的文件,從0,0開始抓取它的一個64x64塊,然後保存並在添加到框架中時將其顯示在框架中。林相當肯定問題是,方法drawSprite從來沒有被調用,但我不知道什麼時候調用它,我不知道是否還有其他東西丟失。
同樣,爲什麼上面的代碼不工作?
感謝
['ImageLabelPanel'](http://stackoverflow.com/a/3078354/230513)可以是有幫助的。 – trashgod 2012-02-07 20:53:08
..你有問題嗎? – 2012-02-08 03:23:13