GameLib. Урок 1
GameLib - библиотека для быстрого создания игрового цикла, а также его управления. Ссылка на форуме.
Заготовка
Создайте проект, подключите библиотеку, затем добавьте пакет "app" с классом "Main".
В нём метод
Создайте класс экрана "Screen1" в пакете "app" следующего содержания:
Вначале мы импортировали класс экрана и сделали его родителем класса Screen1. В конструкторе мы вызвали метод void setDisplay(boolean a) из Screen для того, чтобы он отображался на панели.
Заготовка сделана, теперь перейдём к заполнению.
Заполнение
Теперь нужно нам сделать окно и саму панель, а то как же без них?
Перед методом "main" напишите следующее
И нажмите сочетание клавиш CTRL+SHIFT+I, этим самым мы импортировали нужные нам классы.
В самом методе "main" напишем
Вот так мы создали наше окно и панель.
А теперь нужно же соединить нашу форму и экран, но как?
Для начала нам нужен игровой поток. Что мы время тянем? Вот и создадим его.
Перед методом "main":
И сочетание клавиш не забудьте. Вот так мы объявили что у нас есть цикл, но нужно его настроить и запустить, но мы в данном уроке просто его запустим без настроек.
В методе "main" после всего пишем:
Мы только что создали сам поток, но она не запущен, но это сделаем в самую последнею очередь.
А сейчас мы добавим контейнер экранов на панель.
Снова перед методом "main" пишем:
Так мы объявили список экранов и сам экран, который у нас создан заранее.
В методе "main" после всего пишем:
Всё. Осталось запустить поток и показать окно.
Дописываем метод:
В таком порядке запуска, более всего удобно.
Всё. С отображением и запуском справились, но на окне ничего не видно, только FPS само на себя накладывается. Значит так. Перейдем к Screen1.
Всё подробно тут объяснять не буду, просто прокомментирую.
Вот код:
Заключение
Вот так быстро можно создать приложение.
Следующий урок посвятим созданию менеджера экранов и объектов Render'а.
Заготовка
Создайте проект, подключите библиотеку, затем добавьте пакет "app" с классом "Main".
В нём метод
- public static void main(String[] args){}
Создайте класс экрана "Screen1" в пакете "app" следующего содержания:
- package app;
- import GL.System.Screen.Screen;
- public class Screen1 extends Screen{
- public Screen1(){
- this.setDisplay(true);
- }
- @Override
- public void paint(Graphics2D g) {
- }
- @Override
- public void update(){
- }
- }
Вначале мы импортировали класс экрана и сделали его родителем класса Screen1. В конструкторе мы вызвали метод void setDisplay(boolean a) из Screen для того, чтобы он отображался на панели.
Заготовка сделана, теперь перейдём к заполнению.
Заполнение
Теперь нужно нам сделать окно и саму панель, а то как же без них?
Перед методом "main" напишите следующее
- public static MainPanel panel;//объявили панель из библиотеки
- public static JFrame frame;//всем известная JFrame
В самом методе "main" напишем
- panel = new MainPanel(new Dimension(400, 400));//инцелизировали и установили размер панели
- frame = new JFrame();//мы создали форму без заголовка
- frame.add(panel);//добавили на окно панель нашу
- frame.pack();
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- frame.setLocationRelativeTo(null);//делаем так, чтобы оно было посередине экрана монитора
Вот так мы создали наше окно и панель.
А теперь нужно же соединить нашу форму и экран, но как?
Для начала нам нужен игровой поток. Что мы время тянем? Вот и создадим его.
Перед методом "main":
- public static MainThread thread;
В методе "main" после всего пишем:
- thread = new MainThread(panel);
А сейчас мы добавим контейнер экранов на панель.
Снова перед методом "main" пишем:
- public static ListScreen listScreen;
- public static Screen1 screen1;
В методе "main" после всего пишем:
- listScreen = new ListScreen();//создали пустой список
- screen1 = new Screen1();//инициализировали экран
- listScreen.add(screen1);//добавили в список
- panel.setListScreen(listScreen);//и добавили сам список экранов на панель
Всё. Осталось запустить поток и показать окно.
Дописываем метод:
- thread.start();//запустили поток
- frame.setVisible(true);//показали окно
Всё. С отображением и запуском справились, но на окне ничего не видно, только FPS само на себя накладывается. Значит так. Перейдем к Screen1.
Всё подробно тут объяснять не буду, просто прокомментирую.
Вот код:
Открыть спойлер
Заключение
Вот так быстро можно создать приложение.
Следующий урок посвятим созданию менеджера экранов и объектов Render'а.