Найти в Дзене
Александр Sceef

Как сделать управление пультом для ТВ в Construct 3 [Яндекс.Игры и SmartMarket]

Если вы решились адаптировать свою игру на construct 3 для SMART TV и столкнулись с проблемой: "Как сделать управление с пульта?" - то данная статья для вас. Перемещение При реализации управления на пульте стоить помнить - пульт посылает один сигнал "за раз". То есть, если вы зажали кнопку "вправо", вы не сможете нажать "вверх" для прыжка, пока предыдущая кнопка не будет отжата. Если у вас игра не с активным геймплеем, то для вас это не будет проблемой, а если, как в моем случае, ваша игра имеет требующий реакции игровой процесс, нужно будет обходить это ограничение. Чтобы игроки могли играть в мой хардкорный платформер с пульта, я реализовал систему авто-прыжков. В тех местах, где мне нужно заставить игрока прыгнуть, я установил триггеры (такие же триггеры создаю внутри ловушек (шипы, пилы), но в 2 раза большего размера), касание с которыми вызывает событие прыжка. Чтобы construct 3 понял, что игрок нажимает на кнопки пульта используется "GamePad". А если быть точнее - D-Pad клавиши.
Оглавление

Если вы решились адаптировать свою игру на construct 3 для SMART TV и столкнулись с проблемой: "Как сделать управление с пульта?" - то данная статья для вас.

Моя игра адаптированная под смарт тв на платформах яндекс игры и сбер (смартмаркет)
Моя игра адаптированная под смарт тв на платформах яндекс игры и сбер (смартмаркет)

Перемещение

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

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

Пример триггеров для системы автоматического прыжка, во время игры они прозрачные.
Пример триггеров для системы автоматического прыжка, во время игры они прозрачные.

Чтобы construct 3 понял, что игрок нажимает на кнопки пульта используется "GamePad". А если быть точнее - D-Pad клавиши.

-4

Покажу вам реализацию движение вместе с системой авто прыжка, на примере своей игры:

Событие движение игрока вправо при нажатии кнопки на пульте, а так же проверка касания с триггером системы авто-прыжка
Событие движение игрока вправо при нажатии кнопки на пульте, а так же проверка касания с триггером системы авто-прыжка

Кнопка OK и BACK на пульте

Самое простое, это реализовать кнопку "ОК". Для этого вам просто нужно вызывать событие на нажатие кнопки с клавиатуры "Enter"

-6

А вот с кнопкой "BACK" (клавиша Назад/Вернуться) у меня возникли сложности, пока более простого пути я не нашел, по этому мой вариант будет немного костыльный. Первой, нам нужно заблокировать стандартное событие нажатия на кнопку, например в SberBOX оно бы сразу закрывало игру, а это нам не нужно. Реализуем это с помощью кода в загрузчике игры (в моем случае, в сцене Loader)

-7
window.location.hash = "no-back-button";
window.location.hash = "Again-No-back-button";
window.onhashchange = function(){
window.location.hash = "no-back-button";
};

Теперь для назначения своих действий на кнопку "BACK" будем использовать событие "Browser -> On Hash Change". Рассмотрим на примере моей игры. При нажатие кнопки назад вызывается функция "BackMenu". В ней я определяю, на каком уровне функция была вызвана (вы же можете в логике меню и логике уровней прописать отдельно, но мне захотелось так, это непринципиально). Например, если это локация с выбором уровней "LevelSelect" - то закрыть игру. Если это Загрузчик - то действий не требуется (сделал во избежание багов хэша). А если это любой другой уровень, то переходить к локации с выбором уровней (или просто главное меню, если у вас оно есть).

Итог

Вот и все, вы реализовали управление с по средствам пульта для вашей игры на "констракте". Буду рад комментариям и вашей оценки. Удачи в портировании.