Racer

Рекомендованный уровеньуровень
10+
Вы когда-нибудь играли в видеоигру Speed Race? Не уверены? А, быть может, Wheels? «Автослалом»? Хорошо, а в такую игру, где вы управляете машинкой, едете на большой скорости и попутно уворачиваетесь от других машин и разных, порою очень нелогичных, препятствий? Думаем, хоть одни гоночки с препятствиями вам в вашей геймерской жизни попадались! Подобных игрушек не счесть, и они всегда были очень популярны, благодаря простым правилам и азарту. Первые представители жанра появились ещё в эпоху аркадных автоматов и позволяли, в том числе, устраивать соревнования с друзьями. А однажды, в 1981 году, подобную игру создал сам Билл Гейтс вместе с Нейлом Конценом. Называлась она Donkey.bas (расширение .bas сигналит о том, что глава Microsoft использовал язык BASIC для её написания) и входила в ранние версии PC DOS, операционной системы, которая нынешним детям может только в страшных снах присниться… В Donkey.bas, водитель машинки (игрок) должен избегать столкновения с ослами, то и дело неожиданно возникающими на дорогах. Ситуация, знакомая любому водителю! Давайте и мы тоже вслед за создателем Microsoft создадим похожую игрушку. Только не на BASIC, разумеется, да и без серых непарнокопытных обойдёмся. Будем круче, используем нашу любимую Java. Назовём игру, допустим, Racer. В ней, помимо игрока, который умеет рулить вправо и влево, а также ускоряться, будут присутствовать движущиеся по горизонтали и вертикали объекты — другие машины, а также неподвижные препятствия. Цель — добраться до финишной линии, не врезавшись ни в один из этих объектов. Финишная черта появится через какое-то определённое количество препятствий. Это не так сложно, как вам кажется, но придётся постараться. Мы на JavaRush уже разбили этапы разработки на понятные начинающим программистам шаги. Приступим?
Комментарии (61)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Anonymous #3393870
Уровень 1
25 декабря 2023, 18:07
🙄
Denis Gritsay
Уровень 37
13 ноября 2023, 20:23
терпения не хватает на компилятор, все время жму "правильное решение" в больше половине случаев не могу найти отличия от моего. Это баг или фича?
toowee
Уровень 14
Expert
8 ноября 2023, 16:40
как в ide по шагам двигаться у меня первый шаг стоит и все
Vlad V
Уровень 35
17 апреля 2023, 12:16
А почему в этой игре все по встречке едут?
Gans Electro
Уровень 50
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
Уровень 41
17 августа 2022, 13:07
потому что switch брейкать надо
JavaPlayerPro999 Android Developer в Genesis
28 мая 2022, 14:29
18/28 +10 28
9 мая 2022, 10:59
24 шаг. Впервые за 600 задач использовал кнопку "Правильное решение". Ничего не помогало победить 3 пункт.
hidden #3171829
Уровень 6
27 сентября 2022, 18:39
Пааанты:)
LevPM
Уровень 50
8 января 2022, 19:41
https://javarush.com/projects/apps/310863 Моя версия SpaceRacer :)