1. Как писать игры на JavaRush
Как вы уже поняли, на JavaRush появилась уникальная возможность — написание игр. Они существенно больше, чем обычные задачи, и гораздо интереснее. Интересно их не только писать, но и, гм, тестировать. Если вы понимаете, о чем мы ;) Работа в офисе JavaRush была буквально парализована несколько дней, когда мы начали фазу тестирования задач-игр :) Каждая задача-игра — это проект: большая задача с двумя десятками подзадач. В процессе написания игры вам нужно будет последовательно выполнить их. Когда последняя подзадача будет сделана, ваша игра готова. Она будет использовать очень простой игровой движок JavaRush. Работать с ним не сложнее, чем с консолью. Описание игрового движка и примеры работы с ним вы найдете в этом документе.2. Возможности игрового движка
Игровое поле делится игровым движком на клетки. Минимальный размер — 3x3, максимальный — 100x100. Каждую клетку можно раскрасить в определенный цвет и написать в ней какой-нибудь текст. Также для каждой клетки задаются размер и цвет текста. Движок позволяет писать методы-обработчики для таких событий как «нажатие кнопок мышки» и «нажатие клавиш на клавиатуре». Еще из интересного можно отметить возможность работы с таймером. Детальнее об этом вы узнаете из раздела «Работа с таймером». Такой «очевидный движок» позволяет создавать очень интересные игры, в чем вы убедитесь сами. Хотите проверить? Тогда читайте следующий пункт и приступайте к написанию игр.3. Получение доступа к игре
Чтобы получить доступ к написанию игр, вам нужно зайти в раздел «Игры» на сайте JavaRush, выбрать понравившуюся и перейти на ее страницу. Там будет кнопка «Написать свое решение» — нажмите ее. У вас откроется WebIDE, в которой вы начнете работать над первой подзадачей игры. Также с этого момента подзадачи игры станут доступны вам в Intellij IDEA, через плагин. Если вы пользуетесь Intellij IDEA, вам нужно будет обновить плагин. Последнюю версию плагина вы можете скачать прямо в IntelliJ IDEA: здесь подробная инструкция, как это сделать. После обновления плагина откройте список задач и выберите «Java Games Quest». Далее кликайте по доступной подзадаче: у вас в проекте должен появиться модуль Java Games, а в нем — библиотека движка и код вашей подзадачи. Дальнейшие действия — такие же, как и при решении других задач. Игры можно писать хоть в WebIDE, хоть в Intellij IDEA, где вам больше нравится. Но Intellij IDEA все-таки удобнее. И профессиональнее. Выбор за вами.4. Публикация игр в каталоге приложений
Когда вы закончите писать игру, сможете опубликовать ее в каталоге Игр-и-Приложений на JavaRush. Просто нажмите кнопку «Опубликовать», и спустя полминуты ваша игра добавится в раздел «Опубликованные Игры». Если вы хотите поделиться с друзьями или коллегами вашей реализацией игры, нет ничего проще. Просто вышлите им ссылку на персональную страницу опубликованной игры и пусть играют. Регистрация на JavaRush для этого не требуется. Вы же как создатель можете любоваться количеством игровых сеансов. Прямо как количество просмотров на YouTube. Чем больше, тем лучше.5. Кастомизация игр
После того, как вы закончили писать игру, вы можете модифицировать ее. Хотите 2048 на поле 5x5? Пожалуйста. Вы же программист — вам и клавиатуру в руки. Меняйте игру как захотите. Вы можете добавить вообще что-то новое. Например, в игре Змейка змея может замедляться, если съест яблоко, пока оно еще свежее (в течение первых 5 секунд после его появления). Яблоко при этом может менять цвет с красного на зеленый, или становиться грушей. Или вдруг ваша змея любит кроликов больше, чем яблоки… В "Сапере" можно добавить вторую жизнь игроку, или, например, атомную бомбу, которая будет «засвечивать» ячейки в радиусе нескольких клеток. Но помните: если вы добавите в игру работу с файлами или с графикой не через игровой движок, она может не опубликоваться в каталоге приложений. Не все можно запустить в браузере, знаете ли.6. Полезная документация
Чтобы вы могли познакомиться с работой игрового движка JavaRush (инициализация игры, создание игрового поля и работа с графикой), обработкой событий (работа с мышкой, клавиатурой и таймером), а также освежить или узнать базовую теорию по Java, которая пригодится в написании задач-игр (первый-второй квест JavaRush) мы подготовили несколько подробных документов:- Раздел "Игры" на JavaRush: Описание игрового движка
- Раздел "Игры" на JavaRush: Обработка событий
- Раздел "Игры" на JavaRush: Полезная теория
7. Распространённые проблемы
У меня Linux и я использую OpenJDK. При запуске игры компилятор выдает ошибку:
Error:(6, 8) java: cannot access javafx.application.Application
class file for javafx.application.Application not found
Что делать?
Наш игровой движок использует JavaFX, а в OpenJDK она не установлена по умолчанию. Это нужно исправить:
В командной строке введите команду:
sudo apt-get install openjfx
После этого зайдите в настройки проекта (alt+ctrl+shift+s) -> SDK’s -> Classpath и нажать справа на плюс. Выберите файл jfxrt.jar. Он находится в установленой JDK по пути: <JDK_PATH>/jre/lib/ext/jfxrt.jar
Нажмите ОК.
Загрузите JavaFX Windows SDK по ссылке https://gluonhq.com/products/javafx/.
Распакуйте загруженный архив в любую папку (желательно в папку lib проекта Games).
Откройте IDEA.
В IDEA зайдите в меню File -> Project Structure (Файл -> Структура проекта).
Выберите вкладку Libraries (Библиотеки) и нажмите + -> Java.
Укажите путь к распакованной папке javafx-sdk и выберите папку lib
Далее нажмите OK и в новом окне добавьте JavaFX к модулю Games.
Теперь должна появится новая библиотека, жмите Применить -> ОК.
Для корректного запуска откройте меню Run-> Edit Configuration и пропишите в поле VM options комманду:
--module-path ./lib/javafx-sdk-16/lib --add-modules=javafx.controls,javafx.fxml,javafx.base
Далее в этой же вкладке нужно добавить Application. Для этого нажмите + -> Application
- Выберите модуль Games
- Пропишите путь к главному классу(в данном случае —
SnakeGame
) - Добавьте поле VM options
- Пропишите VM options так же, как в пункте 9.
Нажимайте Применить -> ОК
Запускайте игру.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ