создание уровня для 2d раннеров в java swing

Я делаю 2D раннер, я делал свои кадры с

public class MainMenu2 {
    MainMenu2() throws IOException{
        JFrame Main_Menu = new JFrame("Main Menu");
        Main_Menu.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        final int widthScreen = screenSize.width;
        final int heightScreen = screenSize.height;

каждый раз, когда я создавал класс, я каждый раз создавал такие JFrames, без повторного вызова класса или чего-то еще. Я дополнил меню кнопками, которые подключаются к другим классам, но мне нужно сделать уровень сейчас. Он состоит из движений игрока вправо, влево и вверх, столкновений с платформами и врагами. Вроде как супер марио. Я новичок в Java, поэтому не нашел примеров, соответствующих моей структуре, поскольку все они основаны на 1 JFrame. Я не знаю, как сделать плитку и подключить ее к классу JFrame. Я потерялся, мне нужна помощь, спасибо.


person DennyS    schedule 09.01.2020    source источник
comment
Во всех примерах, которые вы видели, есть 1 JFrame по какой-то причине - вы должны иметь только 1 JFrame. Вы не собираетесь запускать ваш плеер в разных окнах приложений, верно? Как правило, используйте столько JPanels, сколько хотите, но я могу придумать лишь несколько вариантов использования, в которых несколько JFrame имели бы смысл - это не один из них.   -  person sleepToken    schedule 09.01.2020
comment
Думали ли вы об использовании JavaFX, который должен стать преемником Swing? Возможно, посмотрите Введение в JavaFX для Разработка игр   -  person Abra    schedule 09.01.2020
comment
Main_Menu должен быть либо JDialog, либо JPanel в CardLayout. См. Раздел Использование нескольких JFrames, хорошая / плохая практика?   -  person Andrew Thompson    schedule 09.01.2020
comment
См. Примеры переключения между JPanels с помощью CardLayout: 1 и 2   -  person c0der    schedule 10.01.2020


Ответы (1)


Похоже, вы запутались в иерархии свинга.

Вы можете использовать Jpanel, в котором вы можете установить все плитки, а затем установить Jpanel в Jframe.
Короче говоря, от дочернего к родительскому :: Tiles -> Jpanel -> Jframe. (См. Один простой пример: https://coderanch.com/t/633503/java/Tiled-Based-Map-Game-Java).

person sunil borad    schedule 09.01.2020