JavaRush/Java блог/JavaRush/Новый раздел JavaRush — «Игры»

Новый раздел JavaRush — «Игры»

Статья из группы JavaRush
участников
У нас отличная новость! На JavaRush появился новый раздел — «Игры», который теперь открыт для всех пользователей. Здесь каждый из вас может написать полноценную игру с графикой и почувствовать себя настоящим гейм-разработчиком. На данный момент раздел находится на стадии бета-тестирования, поэтому нам очень важно услышать ваше мнение о том, как сделать его еще круче! Пробуйте, тестируйте, оставляйте отзывы и предложения под этим постом! Коротко об основных возможностях раздела "Игры" вы узнаете из нашего видео. Наслаждайтесь!
Теперь предлагаем подробнее ознакомиться с возможностями нового раздела и получить ответы на главные вопросы, которые могут появиться при написании задач-игр.

1. Как писать игры на JavaRush

Как вы уже поняли, на JavaRush появилась уникальная возможность — написание игр. Они существенно больше, чем обычные задачи, и гораздо интереснее. Интересно их не только писать, но и, гм, тестировать. Если вы понимаете, о чем мы ;) Работа в офисе JavaRush была буквально парализована несколько дней, когда мы начали фазу тестирования задач-игр :) Каждая задача-игра — это проект: большая задача с двумя десятками подзадач. В процессе написания игры вам нужно будет последовательно выполнить их. Когда последняя подзадача будет сделана, ваша игра готова. Она будет использовать очень простой игровой движок JavaRush. Работать с ним не сложнее, чем с консолью. Описание игрового движка и примеры работы с ним вы найдете в этом документе.

2. Возможности игрового движка

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

3. Получение доступа к игре

Чтобы получить доступ к написанию игр, вам нужно зайти в раздел «Игры» на сайте JavaRush, выбрать понравившуюся и перейти на ее страницу. Новый раздел JavaRush — «Игры» - 1Там будет кнопка «Написать свое решение» — нажмите ее. Новый раздел JavaRush — «Игры» - 2У вас откроется WebIDE, в которой вы начнете работать над первой подзадачей игры. Также с этого момента подзадачи игры станут доступны вам в Intellij IDEA, через плагин. Новый раздел JavaRush — «Игры» - 3Если вы пользуетесь Intellij IDEA, вам нужно будет обновить плагин. Последнюю версию плагина вы можете скачать прямо в IntelliJ IDEA: здесь подробная инструкция, как это сделать. После обновления плагина откройте список задач и выберите «Java Games Quest». Новый раздел JavaRush — «Игры» - 4Далее кликайте по доступной подзадаче: у вас в проекте должен появиться модуль Java Games, а в нем — библиотека движка и код вашей подзадачи. Дальнейшие действия — такие же, как и при решении других задач. Игры можно писать хоть в WebIDE, хоть в Intellij IDEA, где вам больше нравится. Но Intellij IDEA все-таки удобнее. И профессиональнее. Выбор за вами.

4. Публикация игр в каталоге приложений

Когда вы закончите писать игру, сможете опубликовать ее в каталоге Игр-и-Приложений на JavaRush. Просто нажмите кнопку «Опубликовать», и спустя полминуты ваша игра добавится в раздел «Опубликованные Игры». Новый раздел JavaRush — «Игры» - 5Если вы хотите поделиться с друзьями или коллегами вашей реализацией игры, нет ничего проще. Просто вышлите им ссылку на персональную страницу опубликованной игры и пусть играют. Регистрация на JavaRush для этого не требуется. Новый раздел JavaRush — «Игры» - 6Вы же как создатель можете любоваться количеством игровых сеансов. Прямо как количество просмотров на YouTube. Чем больше, тем лучше.

5. Кастомизация игр

После того, как вы закончили писать игру, вы можете модифицировать ее. Хотите 2048 на поле 5x5? Пожалуйста. Вы же программист — вам и клавиатуру в руки. Меняйте игру как захотите. Вы можете добавить вообще что-то новое. Например, в игре Змейка змея может замедляться, если съест яблоко, пока оно еще свежее (в течение первых 5 секунд после его появления). Яблоко при этом может менять цвет с красного на зеленый, или становиться грушей. Или вдруг ваша змея любит кроликов больше, чем яблоки… В "Сапере" можно добавить вторую жизнь игроку, или, например, атомную бомбу, которая будет «засвечивать» ячейки в радиусе нескольких клеток. Но помните: если вы добавите в игру работу с файлами или с графикой не через игровой движок, она может не опубликоваться в каталоге приложений. Не все можно запустить в браузере, знаете ли.

6. Полезная документация

Чтобы вы могли познакомиться с работой игрового движка JavaRush (инициализация игры, создание игрового поля и работа с графикой), обработкой событий (работа с мышкой, клавиатурой и таймером), а также освежить или узнать базовую теорию по Java, которая пригодится в написании задач-игр (первый-второй квест JavaRush) мы подготовили несколько подробных документов:

7. Распространённые проблемы

У меня Linux и я использую OpenJDK. При запуске игры компилятор выдает ошибку:
Error:(6, 8) java: cannot access javafx.application.Application
  class file for javafx.application.Application not found
Что делать? Наш игровой движок использует JavaFX, а в OpenJDK она не установлена по умолчанию. Это нужно исправить:
  1. В командной строке введите команду: sudo apt-get install openjfx

  2. После этого зайдите в настройки проекта (alt+ctrl+shift+s) -> SDK’s -> Classpath и нажать справа на плюс. Выберите файл jfxrt.jar. Он находится в установленой JDK по пути: <JDK_PATH>/jre/lib/ext/jfxrt.jar

  3. Нажмите ОК.

У меня Java 11. Не могу запустить игру. Что делать? В Java 11 нет JavaFX. Поэтому, при запуске игры, компилятор не сможет скомпилировать игру, и будет ошибка. Чтобы устранить проблему, нужно добавить JavaFX к проекту:
  1. Загрузите JavaFX Windows SDK по ссылке https://gluonhq.com/products/javafx/.

  2. Распакуйте загруженный архив в любую папку (желательно в папку lib проекта Games).

  3. Откройте IDEA.

  4. В IDEA зайдите в меню File -> Project Structure (Файл -> Структура проекта).

  5. Выберите вкладку Libraries (Библиотеки) и нажмите + -> Java.

    Новый раздел JavaRush — «Игры» - 7
  6. Укажите путь к распакованной папке javafx-sdk и выберите папку lib

    Новый раздел JavaRush — «Игры» - 8
  7. Далее нажмите OK и в новом окне добавьте JavaFX к модулю Games.

    Новый раздел JavaRush — «Игры» - 9
  8. Теперь должна появится новая библиотека, жмите Применить -> ОК.

    Новый раздел JavaRush — «Игры» - 10
  9. Для корректного запуска откройте меню Run-> Edit Configuration и пропишите в поле VM options комманду:

    Новый раздел JavaRush — «Игры» - 11
    --module-path ./lib/javafx-sdk-16/lib --add-modules=javafx.controls,javafx.fxml,javafx.base
    Новый раздел JavaRush — «Игры» - 11
  10. Далее в этой же вкладке нужно добавить Application. Для этого нажмите + -> Application

    Новый раздел JavaRush — «Игры» - 12
    1. Выберите модуль Games
    2. Пропишите путь к главному классу(в данном случае — SnakeGame)
    3. Добавьте поле VM options
    4. Новый раздел JavaRush — «Игры» - 13
    5. Пропишите VM options так же, как в пункте 9.

    Нажимайте Применить -> ОК

    Новый раздел JavaRush — «Игры» - 14
  11. Запускайте игру.

Комментарии (279)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Дмитрий
Уровень 9
вчера, 21:52
Возника проблема, подскажите как запустить игру SnakeGame? Другие игры есть, но SnakeGame отсутствует, по аналогии добавить?
Andrew Karev
Уровень 21
15 апреля, 16:18
А в 2024 как это сделать? Сейчас вообще всё по другому выглядит
Зепп Бранниган Admin в JavaRush Moderator
16 апреля, 05:57
Сейчас просто установи наш новый плагин, где игровой движок уже под капотом: Инструкция: https://javarush.com/quests/lectures/questsyntaxpro.level20.lecture02.
Andrew Karev
Уровень 21
16 апреля, 06:13
:(
Pavel Fetisov
Уровень 26
6 апреля, 12:27
Добры день! Возникла вот такая проблема, и я хз что с ней делать(((
Pavel Fetisov
Уровень 26
6 апреля, 12:27
Всё раньше работало, а теперь не понимаю, что сделал такого, что всё пошло лесом?
Andrew Karev
Уровень 21
15 апреля, 16:15
Привет. Возникла та же проблема. Ты случайно не разобрался?
VasiliPl
Уровень 37
10 июля 2023, 10:27
Добрый день! Плагин стоит последний. Почему не видно Игр?
Зепп Бранниган Admin в JavaRush Moderator
11 июля 2023, 11:38
Установите в фильтр 1 уровень.
Sergei Kirianov
Уровень 27
19 января 2023, 18:04
У кого mac os, скачиваете javaFx с сайта, но будьте внимательны: там две архитектурные верcии aarch64 и x64, встанут они обе, но с одной у меня были ошибки на полстраницы. Путь к папке VMoptions я указывал полный где лежит: --module-path /Library/Java/JavaVirtualMachines/javafx-sdk-19.0.2/lib --add-modules=javafx.controls,javafx.fxml, указывал без кавычек как есть.(мой путь /Library/Java/JavaVirtualMachines/javafx-sdk-19.0.2/lib).
Murat
Уровень 51
22 февраля 2023, 11:17
Дружище, спасибо тебе огромное! Заработало! Час сидел и читал инструкции от JavaRush и форумы и обсуждения по этой теме. Именно твой короткий, но ёмкий коммент помог вывести этот заветный виртуальный Телек на экран 🔥 Надеюсь он будет работать и дальше 😁 Респект!!!💪🏼
Лебовски
Уровень 51
14 января 2023, 14:34
Вот так сделал я и работает, может кому поможет Все до 9 пункта строго по инструкции А в 9 вместо ./lib/javafx-sdk-16/lib прописал абсолютный путь к библиотечке в кавычках у меня он: C:\JDK 19\javafx-sdk-19\lib полностью: --module-path "C:\JDK 19\javafx-sdk-19\lib" --add-modules=javafx.controls,javafx.fxml,javafx.base Далее 10 пункт по инструкции А в 11 не прописывал путь к главному классу оставил что было. Вписал в поля тоже самое что и до этого
Лебовски
Уровень 51
14 января 2023, 14:39
Рано обрадовался на новой задачке пришлось все по новой настраивать(((
deltoox
Уровень 29
21 января 2023, 17:09
СПАСИБО ВАМ! Вы бы знали, как я долго парился с этой проблемой, а всего лишь надо было заключить абсолютный путь В КАВЫЧКИ!!!
Дмитрий
Уровень 18
6 августа 2023, 22:27
Максимальный респект
Надежда
Уровень 104
Expert
9 января 2023, 13:41
При запуске выдает ошибку. В командной строке прописала sudo apt-get install openjfx (Пишет, что sudo не является внутренней или внешней командой, исполняемой программой или пакетным файлом) Выбрала файл jfxrt.jar Но это не помогло. Что не так делаю?
Владимир
Уровень 109
Expert
14 декабря 2022, 20:09
при ошибке: Error occurred during initialization of boot layer java.lang.module.FindException: Module javafx.base not found в поле VM options, там где указывали --module-path ./lib/javafx-sdk-16/lib измените версию 16 на вашу актуальную! В моем случае это была 11.0.2 Т.е. общий вид VM options получился такой: --module-path ./lib/javafx-sdk-11.0.2/lib --add-modules=javafx.controls,javafx.fxml,javafx.base
deltoox
Уровень 29
19 января 2023, 12:55
Выдаёт аналогичную ошибку, только вот проблема в том, что у меня указана актуальная версия FX. В чем может заключаться проблема? Может разница в версиях Java и JavaFX?
Владимир
Уровень 109
Expert
20 января 2023, 21:02
у вас же 19я версия прописана, попробуйте все же 18ю указать
deltoox
Уровень 29
21 января 2023, 17:03
Результат аналогичен. Java 19 и javaFX 19 выдаёт ровно тоже самое.
deltoox
Уровень 29
21 января 2023, 17:10
Помогло решение человека с ником Лебовски.
AleXx313
Уровень 37
20 ноября 2022, 14:54
В IntelliJ IDEA не создается модуль 8.Games. Выскакивает "Games module creating error". Все что описано в п.3 сделал. Все что смог найти по решению проблем с написанием задач-игр в IDEA попробовал - не помогло. Если кто сталкивался, подскажите как решить.
Авжоп Кунин
Уровень 30
5 ноября 2022, 14:19
Жопа сгорела до тла при установке этого javafx. Потратил 2! часа на решение проблем с установкой. В итоге все равно при запуске выдает ошибку. Решил вообще не решать эти игры.