Другие способы построить 2D карту в Java

1

поскольку я новичок в 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?

Заранее спасибо, Марвин

Теги:
swing
jpanel
textures
paintcomponent

1 ответ

1

Обратите внимание, что метод, который вы опубликовали, только фрагментирует одно изображение. Вероятно, вы захотите собрать несколько изображений.

Один из способов сделать это - использовать 2D-массив, который содержит типы фрагментов каждой ячейки сетки, а затем использовать этот массив для определения того, какое изображение нужно рисовать в каждой ячейке сетки.

Я рекомендую начать smaller- вы можете рисовать разные цветные прямоугольники на основе 2D-массива в первую очередь?

  • 0
    Да, это не будет проблемой (надеюсь, что ^^) Мне просто интересно, если это хороший способ или есть лучший. Я планировал сделать его 2.5D, поэтому мне нужны прозрачные изображения, накладывающиеся друг на друга ... это возможно с помощью этого метода?
  • 1
    Я не уверен, что вы имеете в виду под «лучше» в данном случае. Я настоятельно рекомендую просто попробовать что-нибудь. Ваш подход кажется довольно стандартным, поэтому я бы не стал сильно беспокоиться об этом. Но да, можно использовать прозрачные изображения, используя любой из подходов, которые мы упомянули до сих пор. Попробуйте и убедитесь сами - вот что делает программирование увлекательным!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню