Moon Lander

Рекомендованный уровеньуровень
10+
В конце 1970-х – начале 1980-х, когда деревья были большими, а видеоигры — по-настоящему сложными, была среди них одна, которую можно назвать хардкорнейшей среди хардкорных. Имя ей — Lunar Lander. Впервые игра заставила людей страдать ещё в 1979 году, когда эти самые люди опускали свои кровно заработанные медяки в монетоприёмник аркадного автомата Atari. После этого люди превращались в пилотов и принимали управление посадочным лунным модулем, который уверено приближался к лунной поверхности. У Луны рельеф для этих целей так себе — горки-пригорки. Соответственно, мест для мягкой посадки — раз-два и обчёлся. Игроку предстояло нейтрализовать лунное притяжение и замедлить падение с помощью кормовых ускорителей. Управление тягой и ускорителем было пропорциональным, топливо расходовалось быстро, и когда его запасы истощались, корабль переставал реагировать на действия пилота. В таком случае игрок мог докинуть ещё монеток в аркадный автомат (здравствуй, прародитель современных игровых лутбоксов!). Игра требовала недюжинного терпения, посадить модуль медленно и ровно было ох как непросто. Собственно, чем лучше виртуальный пилот это сделает, тем больше баллов получит. Предлагаем вам приобщиться к прекрасному, и написать свою версию «Лунного модуля». Наш Moon Lander будет похож на классический, только графика у нас будет получше (всё-таки 40 лет прошло!). Мы создадим симпатичный посадочный модуль, который нужно аккуратно посадить на Луну, не задев горы. Для мягкой и ровной посадки будем использовать основной двигатель, который замедляет падение и приподнимает, а также боковые двигатели для горизонтального перемещения. Думаете, сложная задачка? Сложная, но не неподъемная. Наша команда уже снабдила её рекомендациями и разбила её на приемлемые для начинающего программиста шаги. Так что дерзайте!
Комментарии (70)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
YUREC
Уровень 36
7 марта, 12:07
Мне вот эти : "у вас появился новый класс ShapeMatrix" и "всё описанное выше уже реализовано в классе GameObject, посмотри и разберись" не нравятся. Тут надо бить это всё на задачи и делать самостоятельно. Пусть с подробными объяснениями к каждому действию, но обязательно самостоятельно! А иначе какой смысл ?
Даниил
Уровень 32
23 ноября 2023, 18:54
у меня у одного setScore не работает на сайте? А еще после публикации сайт не воспринимает изменения в коде?
ToTAmon Программист 1С в Медконсалт
5 марта, 10:01
У меня тоже.
YUREC
Уровень 36
7 марта, 12:03
тоже не работает
Denis Gritsay
Уровень 35
11 ноября 2023, 15:47
делаю на автопилоте, ничего не понял как это работает
Edf
Уровень 28
25 октября 2023, 18:16
что за дичь происходит??? "Обрати внимание, что у нас появился вспомогательный класс ShapeMatrix, который хранит матрицу, отвечающую за внешний вид ракеты." - Ничего не появилось!!!
ToTAmon Программист 1С в Медконсалт
5 марта, 10:04
Нужно создать его самостоятельно в IDE и скопировать содержимое из браузерной версии.
Гвазава Сергей
Уровень 31
10 марта 2023, 15:32
Привет, обьясните на что ссылается this в классе MoonLoaderGame
rocket.draw(this);
        landscape.draw(this);
LuneFox Java Developer в BIFIT Expert
4 мая 2023, 19:34
На экземпляр самой игры.
Vlad V
Уровень 35
7 февраля 2023, 19:04
WARNING: '}' at column 9 should be alone on a line. Это пишет "анализ кода" когда видит такой синтаксис
} else {
Так писать не принято?
LuneFox Java Developer в BIFIT Expert
4 мая 2023, 19:35
видимо забыли про это, когда писали проверятор
Vlad V
Уровень 35
6 мая 2023, 17:40
Просто чаще всего встречаю именно такой вариант написания
Vlad V
Уровень 35
7 февраля 2023, 14:51
А где найти документацию к классам движка?
Stanislav
Уровень 40
17 февраля 2023, 21:23
установи плагин javarush в Intellij IDEA, там в папке com.javarush.engine.cell
Anonymous #3177672
Уровень 51
6 февраля 2023, 18:41
Информация для авторов курса. В моей версии задачи был создан метод isStopped, проверяющий величину скорости ракеты, однако в дальнейшем нигде в коде он не использовался, ни в каких заданиях на него не ссылались. Как я понял, он используется для проверки "мягкой посадки" ракеты на платформу. Т.е. для победы в игре недостаточно простой "встречи" ракеты с платформой, скорость ракеты при этой "встрече" должна быть не более заданного значения, иначе ракета "разбивается", и игра считается проигранной. P.s. в своем коде дописал isStopped в метод chek
Pavel V.
Уровень 41
24 августа 2022, 01:59
Сделал конечно, но почему-то понимания процесса от силы процентов 50 наберется, остальное как-то смешалось в голове в кашу непонятную 😐
Denis Gritsay
Уровень 35
11 ноября 2023, 16:35
аналогично, как настоящий джун, че то сделал, что , сам не понял
Omega0x0 Java Developer
24 июля 2022, 16:49
В KSP захотелось поиграть что-то...