Racer

Рекомендованный уровеньуровень
10+
Вы когда-нибудь играли в видеоигру Speed Race? Не уверены? А, быть может, Wheels? «Автослалом»? Хорошо, а в такую игру, где вы управляете машинкой, едете на большой скорости и попутно уворачиваетесь от других машин и разных, порою очень нелогичных, препятствий? Думаем, хоть одни гоночки с препятствиями вам в вашей геймерской жизни попадались! Подобных игрушек не счесть, и они всегда были очень популярны, благодаря простым правилам и азарту. Первые представители жанра появились ещё в эпоху аркадных автоматов и позволяли, в том числе, устраивать соревнования с друзьями. А однажды, в 1981 году, подобную игру создал сам Билл Гейтс вместе с Нейлом Конценом. Называлась она Donkey.bas (расширение .bas сигналит о том, что глава Microsoft использовал язык BASIC для её написания) и входила в ранние версии PC DOS, операционной системы, которая нынешним детям может только в страшных снах присниться… В Donkey.bas, водитель машинки (игрок) должен избегать столкновения с ослами, то и дело неожиданно возникающими на дорогах. Ситуация, знакомая любому водителю! Давайте и мы тоже вслед за создателем Microsoft создадим похожую игрушку. Только не на BASIC, разумеется, да и без серых непарнокопытных обойдёмся. Будем круче, используем нашу любимую Java. Назовём игру, допустим, Racer. В ней, помимо игрока, который умеет рулить вправо и влево, а также ускоряться, будут присутствовать движущиеся по горизонтали и вертикали объекты — другие машины, а также неподвижные препятствия. Цель — добраться до финишной линии, не врезавшись ни в один из этих объектов. Финишная черта появится через какое-то определённое количество препятствий. Это не так сложно, как вам кажется, но придётся постараться. Мы на JavaRush уже разбили этапы разработки на понятные начинающим программистам шаги. Приступим?
Комментарии (67)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Daniil Medvediev
Уровень 44
12 января 2025, 16:20
Хочу делать игру в интеллидж отдельно от курса, а надо импортировать класс гейм import com.javarush.engine.cell.*;. И выдает ошибку подчеркивая джавараш. Может есть другой импорт?
7 декабря 2024, 07:22
Андрей
Уровень 12
7 ноября 2024, 11:22
Пьяная желтая машина достала ))
Sivest
Уровень 29
8 августа 2024, 14:55
Попробуйте мою версию игры. https://javarush.com/projects/apps/504410 Движение в обе стороны, 3-х полосное движение, 2 варианта управления. Отзывы желательны.
Predatel JohnQA Automation Engineer в Большая компания
23 сентября 2024, 14:56
ты ее тестировал? где кнопка начать заново) и почему у тебя машина перескакивает сразу средний ряд?)
Sivest
Уровень 29
3 октября 2024, 09:31
Начать заново пробел, после проигрыша. По умолчанию, стоит казуальное управление, строго по полосам, при желании можно сменить, нажатием на пробел во время игры. Тестировал, какие то мелкие ошибки оставались доделать, но позже по сложившимся обстоятельствам я не мог заниматься. Спустя время, после возвращения, исчез исходный код, а опубликованная игра оказалась не доработанной прошлой версией, как мне объяснили, нужно было делать не на сайте, а в идее например, будет мне уроком, за то теперь точно не буду забывать про бэкап, благодарю за комментарий:)
Denis Gritsay
Уровень 41
13 ноября 2023, 20:23
терпения не хватает на компилятор, все время жму "правильное решение" в больше половине случаев не могу найти отличия от моего. Это баг или фича?
Leonid Mantsvetov
Уровень 19
12 ноября 2024, 15:46
но всё таки они есть, иногда)
toowee
Уровень 14
Expert
8 ноября 2023, 16:40
как в ide по шагам двигаться у меня первый шаг стоит и все
Vlad V
Уровень 35
17 апреля 2023, 12:16
А почему в этой игре все по встречке едут?
Gans Electro
Уровень 4
3 мая 2023, 15:50
Это с какой стороны смотреть...😂
Vlad V
Уровень 35
13 июля 2023, 16:21
та я имел ввиду что по обе стороны от разделительной полосы все в одну сторону едут
Kirill Java Developer
13 февраля 2023, 14:47
У кого игра при компиляции в IDEA выдает NullPointerException и ничего не выводит на экран: В методе Initialize() класса RacerGame удалите или задокументируйте вызов метода drawScene()! Он должен вызываться только в createGame().
@Override
    public void initialize() {
        showGrid(false);
        setScreenSize(WIDTH, HEIGHT);
        //drawScene();
        createGame();
При текущей конфигурации в методе drawScene() осуществляется вызов методов соответствующих объектов, но их состояние - null, так как их инициализация проводиться в методе createGame() => отсюда и получаем исключение NullPointer. Если валидатор будет настойчиво требовать вызов этого метода в данном месте, можно просто раздокументировать, пройти валидацию и снова его выключить.
STEPASHKINS
Уровень 34
31 января 2023, 18:17
Люди добрые, подскажите как запустить программу, чтобы хоть поглядеть на процесс создания игры, если кнопка пуска неактивна(нет метода мэйн), jdk установлен . Куда этот мэйн пихнуть правильно
Kirill Java Developer
13 февраля 2023, 14:52
Для запуска нужен переопределенный метод initialize()
@Override
    public void initialize() {
        showGrid(false);
        setScreenSize(WIDTH, HEIGHT);
        drawScene();
        createGame();
Но в нем есть баг, в коментарии выше я описал как с ним быть)
Ivan Sevastianov
Уровень 33
5 августа 2022, 06:43
Странно, почему вот так не принимает: public void move(){ switch (direction){ case LEFT: x--; case RIGHT: x++; } } То же самое, что и через If. Ругается только на LEFT...
Valkery
Уровень 1
17 августа 2022, 13:07
потому что switch брейкать надо