GameLib / Урок 2 (Вторая версия GL, создание окна)

Если вы заметили ошибку, нажмите Shift+Enter, чтобы сообщить о ней. Все ваши сообщения можно посмотреть здесь.
4.01.2017 / 17:32 от Death
GameDev

Изменения
Доброго времени суток.
Если честно, то начинать всегда сложно, но мы попробуем.
Вот я свою GameLib переписал. Сделал всё заново, так как в прошлой версии была каша в коде и я её писал больше 3 месяцев. Её функцию общею я сохранил, добавил того чего не хватало и убрал то что было лишнее. Всё сделал для удобства, и что бы не каждый раз при создании проекта писать тонну кода для создания формы, панели. Я сделал это. Так же возможна смена экранов. Тут экраны это.. Например есть у нас игровое поле, меню, загрузка, заставка, настройки, так вот каждый из себя представляет отдельный экран. Когда я начинал только программировать на Java у меня была проблема с этим. Потом полгода я изобретал это. И вот оно, теперь не нужно писать каждый раз тонну кода. Просто подключил, инициализировал дисплей и занимаешься только над логикой игры/приложения.

Можно скачать на форуме: Ссылка

НачинаемВ этом уроке я буду использовать главный модуль библиотеки это GL_System.
Давайте создадим проект Exampler1 с пакетом app и главным классом Main.
Создадим статистическую публичную переменную типа Display и назовём её display, что бы не заморачиваться с названием. И импортируем сочетанием CTRL + SHIFT + I

В методе main пишем следующие:
Код

Так, мы создаем окно с шириной 800 на высоту в 600 пикселей. Потом мы изменяем заголовок нашего окна на Exemple.

Всё, если вы запустите то увидите только формы с белым экраном и снизу в правом углу ФПС. Но этого же мало, и мы создадим экран собственный.
В этом же пакете создадим класс Screen1 и наследуем его от Screen, и импортируем.
И пишем в него следующие:
  1. public Render1 render1;
  2.  
  3. public Screen1() {
  4.     super();
  5.     //Делаем отображаемым экран на форме
  6.     this.setVisible(true);
  7.     //Инициализируем рендер
  8.     render1 = new Render1();
  9.     //Добавляем рендер на экран
  10.     this.addRender(render1);
  11. }
И не будем останавливаться на этом и сразу же создадим рендер, создадим в этом же пакете класс Render1 и наследуем его от Render.
А теперь пару слов о Screen. Мы в конструкторе вызываем супер конструктор, потом делаем что бы этот экран отображался на дисплее. Потом инициализируем рендер и добавляем на экран. На экран так же можно добавить UI из модуля GL_GUI, но это в следующих статьях.

Так, вернёмся к рендеру. Этот класс сама основа, там нет переменных, только 3 метода:
  1. void paint();
  2. void paint(Graphics2D);
  3. void update();
Тут нету вопросов к методам, только разве что к void paint(). Это уже будет сюрприз, это в следующих статьях, и эта функция не очень работа способная(есть баги).

Ну думаю сначала предоставлю весь код, а потом прокомментирую.
Код

Мы просто рисуем круг с центром координат мыши. Радиус мы можем увеличить нажав стрелку вверх и отпустив её, круг уменьшиться. По нажатию мыши круг меняет свой цвет на другой. Думаю сам код понятен, расскажу только про случаи касающиеся библиотеки.

Мы создаем поле mouse и key, и после их инициализации добавляем их на обработку на дисплей.
В Key мы можем добавить обрабатываться интерфейсы IPressedKey и IReleasedKey. Первый обрабатывает нажатие клавиш, а другой их отпускание.

Так же и Mouse имеет свою обработчик-интерфейс ClickButton, там два метод: pressed и released. Соответственно каждый обрабатывает нажатие и отпускание кнопок мыши.

КонецТак. Запустим. Так же не что не изменилось. Мы забыли подключиться экран к дисплею. Сначала создадим публичную статистическую переменную Screen1 и назовём её screen1. В методе main перед запуском игрового потока мы инициализируем экран и добавляем на дисплей.
Получаем код:
Код

На этом всё. Полный рабочий код есть здесь.

Спасибо за внимание!
java, gamedev, gl
+1   4   3
100
Похожие статьи
Java 9. Project Jigsaw. Модульность
Параллаксный фон
Создание графического меню

  © aNNiMON (Melnik Software)
Онлайн: 28 (2/26)
 
Яндекс.Метрика