январь 1, 1970

At The Mountains of Madness (itch)

Добавить в
Мои игры
Торрент
Скачать

Переключайтесь между тремя разными персонажами, чтобы работать вместе и выбраться из жутких антарктических руин на этой короткой платформе, вдохновленной главной историей H.P. Лавкрафт. Доберитесь до верха карты и сбейте ледяную глыбу, чтобы изолировать шогготов в туннелях внизу.

Все ресурсы и код были созданы мной за одну неделю.

Управление

  • A/D или влево/вправо для перемещения
  • J, вверх или пробел для прыжка
  • K или Shift для входа в режим прицеливания с помощью начального персонажа
  • >
  • L или Enter, чтобы взаимодействовать с женским персонажем.
  • I, чтобы переключать персонажей.
  • ЛКМ, чтобы стрелять, прицеливаясь, или ломать лед большим персонажем.
  • ВНИМАНИЕ: двери не на 100% идеальны, поэтому убедитесь, что персонажи не стоят под ними, когда вы их активируете, иначе вам придется выйти и начать заново!

    Код платформера для этой игры во многом заимствован из моей предыдущей игры Shell Platformer с только небольшими улучшениями. В этой игре представлено несколько новых и полезных механик, в первую очередь смена персонажей, режимы прицеливания и механика подвешивания.

    Смена персонажей была, безусловно, самой простой в реализации механикой, и она выполнялась с помощью следующего кода. Индекс управляемого символа просто меняется при нажатии I, и, если ледяной блок не был отпущен, камера настраивается на отслеживание контролируемого символа.

    Соответствующий код контроллера символов:

    // циклически управляемый символ если (keyboard_check_pressed(ord("I"))) { продолжениепрокатка += 1; если (управление > pc_count) { контроль = 1; } } // камера следует за управляемым персонажем если (!obj_breakable_slab.hanging) { camera_set_view_target (view_camera [0], obj_breakable_slab); таймер += delta_time/1000000; если (таймер >= 3) { room_goto_next(); } } иначе, если (управление == 1) { camera_set_view_target(view_camera[0], obj_pl1); } иначе, если (управление == 2) { camera_set_view_target (view_camera [0], obj_pl2); } иначе, если (управление == 3) { camera_set_view_target (view_camera [0], obj_pl3); }

    Две другие механики были гораздо сложнее. Механика прицеливания требовала использования отдельного объекта-руки, который на самом деле всегда незаметно вращается на заднем плане, но не может стрелять, пока игрок не прицеливается. Прицеливание определенно придется подправить в следующих выпусках этой игры, поскольку оно медленное и неуклюжее, но это было лучшее, что я мог сделать в условиях нехватки времени.

    Соответствующий код игрока 1:

    если (hsp == 0) { if (key_interact && Place_meeting(x, y + 1, obj_collisionBox)) { индекс_изображения = 4; прицеливание = !прицеливание; } иначе, если (!прицеливаюсь) { индекс_изображения = 0; } }

    Большая часть кода содержится в объекте руки: игрок просто начинает прицеливаться, если его остановить и нажать правильную клавишу. Как только игрок прицеливается, рука становится видимой и включается функция огня..

    Соответствующий код активации:

    image_xscale = obj_pl1.image_xscale; если (image_xscale == 1) { х = obj_pl1.x + 4; } иначе, если (image_xscale == -1) { х = obj_pl1.x - 4; } у = obj_pl1.y - 11; // задает вращение прицельного рычага if (keyboard_check_pressed(ord("D")) || Keyboard_check_pressed(vk_right)) { изображение_угол = 90; } иначе если (keyboard_check_pressed(ord("D")) || Keyboard_check_pressed(vk_left)) { image_angle = 270; } иначе, если (image_xscale == 1) { if (point_direction(x, y, mouse_x, mouse_y) >= 0 && point_direction(x, y, mouse_x, mouse_y) <= 90) { image_angle = зажим (point_direction (x, y, mouse_x, mouse_y) + 90, 90, 180); } if (point_direction(x, y, mouse_x, mouse_y) >= 290 && point_direction(x, y, mouse_x, mouse_y) <= 360) { image_angle = зажим (point_direction (x, y, mouse_x, mouse_y) + 90, 380, 450); } } иначе, если (image_xscale == -1) { if (point_direction(x, y, mouse_x, mouse_y) >= 90 && point_direction(x, y, mouse_x, mouse_y) <= 250) { image_angle = зажим (point_direction (x, y, mouse_x, mouse_y) + 90, 180, 340); } }

    Функция огня срабатывает при нажатии мыши и просто уничтожает все разрушаемые предметы в направлении щелчка мыши и появляется в виде спрайта пули , который движется в том же направлении для некоторой визуальной обратной связи.

    Самая сложная для реализации функциональность, и, по общему признанию, не совсем полная.Это версия игры — механика висящего горшка. Текущая реализация, возможно, не является сложной и точной физической моделью, но я очень горжусь тем, что мне удалось заставить ее работать в течение короткого цикла разработки игры, и думаю, что она должна послужить хорошей основой для улучшения, если я буду продолжать развивать этот прототип в будущем. .

    Соответствующий код веревки:

    если (висит) { всп = 0; } иначе, если (vsp < maxFallSpd) { всп += гравитация; } если (instance_exists(якорь)) { висит = 1; } еще { висит = 0; }

    По сути, если якорь веревки разрушен, она начнет падать. Текущая проблема заключается в том, что веревка должна полностью упасть на землю и быть уничтожена, прежде чем что-либо, «прикрепленное» к ней, начнет падать. Это приводит к некоторой странной физике, когда горшки могут ненадолго зависать в воздухе после того, как их веревки были отстреляны. Теперь, когда я могу увидеть проблему задним числом, я, вероятно, смогу исправить эту небольшую проблему, если вернусь к этому прототипу в будущем.

Как скачать At The Mountains of Madness (itch) через торрент

Всего несколько простых шагов:

  • Устанавливаем программу μTorrent, через которую мы будем скачивать торренты
  • Выбираем и скачиваем подходящий торрент-файл репака At The Mountains of Madness (itch)
  • Двойным кликом открываем скаченный файл, программа μTorrent запустится автоматически и предложит выбрать место для сохранения дистрибутива.
  • После того как репак скачается, запускайте его. Начнется установка и... это все, приятной игры!