GameLib / Урок 2 (Вторая версия GL, создание окна)
от Death
Изменения
Доброго времени суток.
Если честно, то начинать всегда сложно, но мы попробуем.Вот я свою GameLib переписал. Возможна смена экранов. Тут экраны это: поле, меню, загрузка, заставка, настройки. Каждый из себя представляет отдельный экран. Когда я начинал только программировать на Java у меня была проблема с этим. Вот это я сделал чтобы облегчить себе жизнь.
Можно скачать на форуме: Ссылка
НачинаемВ этом уроке я буду использовать главный модуль библиотеки это GL_System.
Давайте создадим проект Exampler1 с пакетом app и главным классом Main.
Создадим статичную публичную переменную типа Display и назовём её display, чтобы не заморачиваться с названием. И импортируем сочетанием CTRL + SHIFT + I
В методе main пишем следующее:
Так, мы создаем окно с шириной 800 на высоту в 600 пикселей. Потом мы изменяем заголовок нашего окна на Example.
Всё, если вы запустите, то увидите только формы с белым экраном и снизу в правом углу ФПС. Но этого же мало, и мы создадим экран собственный.
В этом же пакете создадим класс Screen1 и наследуем его от Screen, и импортируем.
И пишем в него следующее:
И не будем останавливаться на этом и сразу же создадим рендер, создадим в этом же пакете класс Render1 и унаследуем его от Render.
А теперь пару слов о Screen. Мы в конструкторе вызываем суперконструктор, потом делаем чтобы этот экран отображался на дисплее. Потом инициализируем рендер и добавляем на экран. На экран так же можно добавить UI из модуля GL_GUI, но это в следующих статьях.
Так, вернёмся к рендеру. Этот класс сама основа, там нет переменных, только 3 метода:
Тут нету вопросов к методам, только разве что к void paint()
Ну думаю сначала предоставлю весь код, а потом прокомментирую.
Мы рисуем круг в точке нахождения курсора. Радиус мы можем увеличить нажав на клавишу "вверх" и отпустив клавишу круг снова уменьшится. По клику мыши круг меняет свой цвет на другой.
Мы создаем поле mouse и key, и после их инициализации добавляем их на обработку на дисплей.
В Key мы можем добавить обрабатываться интерфейсы IPressedKey и IReleasedKey. Первый обрабатывает нажатие клавиш, а другой их отпускание.
Так же и Mouse имеет свою обработчик-интерфейс ClickButton, там два метод: pressed и released. Соответственно каждый обрабатывает нажатие и отпускание кнопок мыши.
КонецТак. Запустим. Так же не что не изменилось. Мы забыли подключиться экран к дисплею. Сначала создадим публичную статистическую переменную Screen1 и назовём её screen1. В методе main перед запуском игрового потока мы инициализируем экран и добавляем на дисплей.
Получаем код:
На этом всё. Полный рабочий код есть здесь.
Спасибо за внимание!
Доброго времени суток.
Если честно, то начинать всегда сложно, но мы попробуем.Вот я свою GameLib переписал. Возможна смена экранов. Тут экраны это: поле, меню, загрузка, заставка, настройки. Каждый из себя представляет отдельный экран. Когда я начинал только программировать на Java у меня была проблема с этим. Вот это я сделал чтобы облегчить себе жизнь.
Можно скачать на форуме: Ссылка
НачинаемВ этом уроке я буду использовать главный модуль библиотеки это GL_System.
Давайте создадим проект Exampler1 с пакетом app и главным классом Main.
Создадим статичную публичную переменную типа Display и назовём её display, чтобы не заморачиваться с названием. И импортируем сочетанием CTRL + SHIFT + I
В методе main пишем следующее:
Код
Так, мы создаем окно с шириной 800 на высоту в 600 пикселей. Потом мы изменяем заголовок нашего окна на Example.
Всё, если вы запустите, то увидите только формы с белым экраном и снизу в правом углу ФПС. Но этого же мало, и мы создадим экран собственный.
В этом же пакете создадим класс Screen1 и наследуем его от Screen, и импортируем.
И пишем в него следующее:
- public Render1 render1;
- public Screen1() {
- super();
- //Делаем отображаемым экран на форме
- this.setVisible(true);
- //Инициализируем рендер
- render1 = new Render1();
- //Добавляем рендер на экран
- this.addRender(render1);
- }
А теперь пару слов о Screen. Мы в конструкторе вызываем суперконструктор, потом делаем чтобы этот экран отображался на дисплее. Потом инициализируем рендер и добавляем на экран. На экран так же можно добавить UI из модуля GL_GUI, но это в следующих статьях.
Так, вернёмся к рендеру. Этот класс сама основа, там нет переменных, только 3 метода:
- void paint();
- void paint(Graphics2D);
- void update();
Ну думаю сначала предоставлю весь код, а потом прокомментирую.
Код
Мы рисуем круг в точке нахождения курсора. Радиус мы можем увеличить нажав на клавишу "вверх" и отпустив клавишу круг снова уменьшится. По клику мыши круг меняет свой цвет на другой.
Мы создаем поле mouse и key, и после их инициализации добавляем их на обработку на дисплей.
В Key мы можем добавить обрабатываться интерфейсы IPressedKey и IReleasedKey. Первый обрабатывает нажатие клавиш, а другой их отпускание.
Так же и Mouse имеет свою обработчик-интерфейс ClickButton, там два метод: pressed и released. Соответственно каждый обрабатывает нажатие и отпускание кнопок мыши.
КонецТак. Запустим. Так же не что не изменилось. Мы забыли подключиться экран к дисплею. Сначала создадим публичную статистическую переменную Screen1 и назовём её screen1. В методе main перед запуском игрового потока мы инициализируем экран и добавляем на дисплей.
Получаем код:
Код
На этом всё. Полный рабочий код есть здесь.
Спасибо за внимание!