1. Как писать игры на JavaRush
Как вы уже поняли, на JavaRush появилась уникальная возможность — написание игр. Они существенно больше, чем обычные задачи, и гораздо интереснее. Интересно их не только писать, но и, гм, тестировать. Если вы понимаете, о чем мы ;) Работа в офисе JavaRush была буквально парализована несколько дней, когда мы начали фазу тестирования задач-игр :) Каждая задача-игра — это проект: большая задача с двумя десятками подзадач. В процессе написания игры вам нужно будет последовательно выполнить их. Когда последняя подзадача будет сделана, ваша игра готова. Она будет использовать очень простой игровой движок JavaRush. Работать с ним не сложнее, чем с консолью. Описание игрового движка и примеры работы с ним вы найдете в этом документе.2. Возможности игрового движка
Игровое поле делится игровым движком на клетки. Минимальный размер — 3x3, максимальный — 100x100. Каждую клетку можно раскрасить в определенный цвет и написать в ней какой-нибудь текст. Также для каждой клетки задаются размер и цвет текста. Движок позволяет писать методы-обработчики для таких событий как «нажатие кнопок мышки» и «нажатие клавиш на клавиатуре». Еще из интересного можно отметить возможность работы с таймером. Детальнее об этом вы узнаете из раздела «Работа с таймером». Такой «очевидный движок» позволяет создавать очень интересные игры, в чем вы убедитесь сами. Хотите проверить? Тогда читайте следующий пункт и приступайте к написанию игр.3. Получение доступа к игре
Чтобы получить доступ к написанию игр, вам нужно зайти в раздел «Игры» на сайте JavaRush, выбрать понравившуюся и перейти на ее страницу.



4. Публикация игр в каталоге приложений
Когда вы закончите писать игру, сможете опубликовать ее в каталоге Игр-и-Приложений на JavaRush. Просто нажмите кнопку «Опубликовать», и спустя полминуты ваша игра добавится в раздел «Опубликованные Игры».

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.
Нажимайте Применить -> ОК
Запускайте игру.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ