поскольку я новичок в java, я думал о программировании простой 2D-игры, в которой вы можете ходить в 2D-мире, который сделан из графики 16x16. Я уже нашел способ создания текстурированных JPanels:
public class TexturedPanel extends JPanel {
private Image image;
private boolean tile;
TexturedPanel(Image image) {
this.image = image;
this.tile = true;
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
if(tile) {
int iw = image.getWidth(this);
int ih = image.getHeight(this);
if (iw > 0 && ih > 0) {
for(int x = 0; x < getWidth(); x += iw) {
for(int y = 0; y < getHeight(); y += ih) {
g.drawImage(image, x, y, iw, ih, this);
}
}
}
} else {
g.drawImage(image, 0, 0, getWidth(), getHeight(), this);
}
}
}
Теперь я должен решить, буду ли я продолжать этот метод, или если я должен использовать другой...
Итак, есть ли лучшие (более быстрые/более простые) методы для создания текстурированного JPanel?
Заранее спасибо, Марвин
Обратите внимание, что метод, который вы опубликовали, только фрагментирует одно изображение. Вероятно, вы захотите собрать несколько изображений.
Один из способов сделать это - использовать 2D-массив, который содержит типы фрагментов каждой ячейки сетки, а затем использовать этот массив для определения того, какое изображение нужно рисовать в каждой ячейке сетки.
Я рекомендую начать smaller- вы можете рисовать разные цветные прямоугольники на основе 2D-массива в первую очередь?