Здравствуйте, сегодня приступим к созданию простой Android игры с помощью бесплатного фреймворка LibGDX и Android Studio.
В данной части (Часть 1) мы создадим проект в фреймворке LibGDX и установим окно игры размером в 480*800.
Скачать исходники для статьи можно ниже
Суть игры: Вы пришелец и гигантские насекомые атакуют твой город! Ваша цель, бежать столько, сколько сможете избегая насекомых.
Управление: Здесь только один путь избежать насекомых: перепрыгивать или уклоняться. Кнопка прыжка будет справа экрана, а кнопка уклонения будет слева экрана.
Как будет выглядеть игра “Марсианин”:
1. Создаём новый проект в LibGDX:
Name: martianrun
Package; com.gamestudio24.martianrun
Game class: MartianRun
Отмечаем галочкой:
– Desktop и Android;
– Box2d и Freetype.
2. Корректируем класс MartianRun
Заходим в Android Studio и открываем наш созданный проект.
У нас откроется созданный нами класс – MartianRun.
После успешного созданий проекта на desktop и Android, я обычно убираю шаблонный код установленный libGDX. Это означает удаление изображения badlogic.jpg, которое добавляется в папку assets folder, а также очищаю созданный класс MartianRun, как ниже:
package com.gamestudio24.martianrun; import com.badlogic.gdx.ApplicationAdapter; public class MartianRun extends ApplicationAdapter { @Override public void create() { } @Override public void render() { } }
Первая вещь, которую мы будем делать – это сделаем наш MartianRun класс наследующийся от Game, так мы сможем поддерживать многоэкранность. Я рекомендую сделать это в случае, если вы хотите добавить многоэкранность в будущем, например заставка, экран меню, доска лидеров и.т.д.
А также мы удаляем метод render().
Мой MartianRun класс теперь выглядит так:
package com.gamestudio24.martianrun; import com.badlogic.gdx.Game; public class MartianRun extends Game { @Override public void create() { } }
3. Создаём класс – GameScreen.
Теперь создадим GameScreen класс внутри только что созданного пакета, а именно создадим новую папку (пакет) “screens” и создадим в ней новый класс с названием GameScreen:
package com.gamestudio24.martianrun.screens; import com.badlogic.gdx.Screen; public class GameScreen implements Screen { @Override public void render(float delta) { } @Override public void resize(int width, int height) { } @Override public void show() { } @Override public void hide() { } @Override public void pause() { } @Override public void resume() { } @Override public void dispose() { } }
После создания класса GameScreen нам нужно установить в нашем MartianRun классе наш GameScreen на запуск, то есть теперь наш MartianRun класс будет выглядеть следующим образом:
package com.gamestudio24.martianrun; import com.badlogic.gdx.Game; import com.gamestudio24.martianrun.screens.GameScreen; public class MartianRun extends Game { @Override public void create() { setScreen(new GameScreen()); } }
4. Создаём класс – Constants.
Далее давайте установим ширину и высоту нашей игры – 480×800.
Для этого создадим новую папку (пакет) – utils и в нём новый класс – Constants
со следующим кодом:
package com.gamestudio24.martianrun.utils; public class Constants { public static final int APP_WIDTH = 800; public static final int APP_HEIGHT = 480; }
После подкорректируем Desktop Launcher, так, чтобы наша будущая игра использовала значения ширины и высоты из класса Constants:
package com.gamestudio24.martianrun.desktop; import com.badlogic.gdx.backends.lwjgl.LwjglApplication; import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration; import com.gamestudio24.martianrun.MartianRun; import com.gamestudio24.martianrun.utils.Constants; public class DesktopLauncher { public static void main (String[] arg) { LwjglApplicationConfiguration config = new LwjglApplicationConfiguration(); config.width = Constants.APP_WIDTH; config.height = Constants.APP_HEIGHT; new LwjglApplication(new MartianRun(), config); } }
Теперь можете запустим наш проект. У вас должно открыться пустое окно размером – 480×800.
ИТОГИ:
Подводим итоги Части 1:
У нас созданы 3 класса: MartianRun, GameScreen (в папке screens) и Constants (в папке utils).
Код класса MartianRun выглядит так:
package com.gamestudio24.martianrun; import com.badlogic.gdx.Game; import com.gamestudio24.martianrun.screens.GameScreen; public class MartianRun extends Game { @Override public void create() { setScreen(new GameScreen()); } }
Код класса GameScreen выглядит так:
package com.gamestudio24.martianrun.screens; import com.badlogic.gdx.Screen; public class GameScreen implements Screen { @Override public void render(float delta) { } @Override public void resize(int width, int height) { } @Override public void show() { } @Override public void hide() { } @Override public void pause() { } @Override public void resume() { } @Override public void dispose() { } }
Код класса Constants выглядит так:
package com.gamestudio24.martianrun.utils; public class Constants { public static final int APP_WIDTH = 800; public static final int APP_HEIGHT = 480; }