создание уровня для 2d игры в раннер java swing - PullRequest
0 голосов
/ 09 января 2020

Я делаю 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. Я потерян, мне нужна помощь, спасибо.

Ответы [ 2 ]

0 голосов
/ 09 января 2020

Звучит так, будто вы запутались в колебательной иерархии.

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

0 голосов
/ 09 января 2020

В одной из наших первых игр, которые мы сделали с качелями, мы использовали несколько JFrames, и я могу сказать вам, что это не очень хорошая идея. Самой большой проблемой была потеря памяти, когда мы удаляли один кадр, чтобы запустить новый и вернуться снова. Поэтому разумно использовать только один JFrame и добавить к нему много JPanels. Их можно легко скрыть и показать снова, не думая о повторной инициализации или использовании памяти.

Поскольку SWING не является лучшей платформой для создания прыжковой игры - хорошей идеей будет переосмыслить свое намерение. , Вы можете работать с 2D-холстом и рисовать свою игру прямо к нему. Или, если вы планируете узнать немного больше, вы можете использовать openGL для настройки своей игры. Если вы используете SWING, вы должны иметь в виду, что он не был создан с идеей компьютерной игры. По крайней мере, вам нужны некоторые идеи потоков (например, захват пользовательского ввода, перерисовка декораций, ...), которые можно найти во многих статьях и больше информации в литературе.

Все это можно узнать, если вы останетесь с вашими планами - удачи в вашем проекте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...