Я искал в Интернете, чтобы попытаться найти полное решение, но на данный момент я могу найти только те части, которые не подходят друг другу.
Я ищу программу, которая может просмотреть файл изображения, пройтись по файлу и изолировать спрайты, а затем сохранить их. После этого мне нужен способ повторного доступа к этой информации о спрайте, чтобы я мог ее отобразить, но я хотел бы иметь возможность отображать плитки на основе моих собственных формул. Думайте об игре как о продвинутых войнах с маленькими плитками местности. Я хочу иметь возможность отображать эти плитки почти случайно, но в рамках моих собственных параметров.
Я также хотел бы иметь возможность загрузить другой файл изображения, который имеет спрайты того же размера, что и изображение выше, но использовать эти изображения для анимации.
Итак, у меня есть 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 посмотрел на мой файл, взял фрагмент размером 64x64, начиная с 0,0, а затем сохранил его и отобразил в кадре, когда он был добавлен в него. Я уверен, что проблема в том, что метод drawSprite никогда не вызывается, но я не уверен, когда его вызывать, и я не уверен, что ничего не хватает.
Опять же, почему вышеупомянутый код не работает?
Спасибо