Какой метод ввода подходит для 2D-платформера на сенсорном устройстве?

16

Я создаю 2D-платформерную игру, такую ​​как Super Meat Boy, в которой важна точность передвижения моего главного персонажа. Я использую libgdx. Управление с клавиатуры на ПК работает точно, но когда дело доходит до управления акселерометром, очень сложно точно управлять персонажем. Это ухудшается поэтапно с перегруженными безопасными путями спасения. Я думал о реализации экранного аналогового шара для обработки ввода, но прочитал много плохих последствий этого в Интернете.

Что такое интуитивно понятный, но точный метод ввода для использования в платформерных играх на сенсорных устройствах?

Рахул Верма
источник

Ответы:

7

Одним словом: Смахивание.

Я играл в чемпионат Pac-Man на своем телефоне Android, и мне показалось, что он действительно сработал, так как на экране был джойстик, но вам не нужно было его трогать, чтобы двигать Pac-Man в нужном направлении. Если ваш палец упал с джойстика, это не имеет значения. Все, что имело значение, это то, в каком направлении вы двигали пальцем.

Чтобы двигаться вверх, проведите вверх. Чтобы двигаться вниз, проведите пальцем вниз. Для перемещения влево проведите пальцем влево. Чтобы двигаться вправо, проведите вправо.

С таким же успехом вы можете сделать считывание контекста чувствительным к областям экрана и действиям, происходящим в настоящее время в игре. Представьте, что ваш телефон находится в ландшафтном режиме, и вы держите его, как контроллер видеоигры. Левая половина экрана может быть зарезервирована для движения, используя пролистывание, которое я описал выше. Правая половина экрана может быть использована для таких действий, как прыжки, стрельба, защита, любые игровые способности, которые вы хотите дать своему игроку, используя смахивание очень похожим образом. Или, если у вас есть только одна способность (например, прыжки в Super Meat Boy) - просто обработайте правую половину экрана как кнопку.

Обновить

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

Pacman Swiping

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

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

SpartanDonut
источник
4

Что если вы рассматриваете половину экрана как виртуальный трекбол, где позиция / скорость вашего персонажа напрямую связана с позицией мяча? Смахивание и отпускание приведут вашего персонажа в постоянное движение (и заставят трекбол вращаться). Удерживание пальца на экране будет похоже на удержание трекбола, чтобы вы могли внести небольшие изменения в положение вашего персонажа или остановить движение персонажа. Я думаю, что это могло бы хорошо сработать в те безумные моменты в Super Meat Boy, когда вы пытаетесь бегать, прыгать, а затем останавливаться на копейке. Это был бы экспериментальный подход, потому что я не видел, чтобы это было сделано раньше, но все же лучше, чем виртуальная флешка.

Изменить: Контроллер Steam обрабатывает их трекпад как симулированный трекбол, но я не достаточно экспериментировал, чтобы найти игру, которая рассматривает его как один.

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

Я обнаружил, что сенсорные и удерживающие элементы управления на боковой стороне экрана наиболее чувствительны.

Если человек касается левой стороны, бегите налево (пока он не отпустит). Если человек касается правой стороны, бегите направо.

RunRunRiot! это пример этого.

Что касается прыжков, вы можете нажать на середину экрана (используя любую руку).

Примеры (ландшафтный iPad) работает правильно

______________
|            |
|            |
|            |
|___________R|

Прыгать вправо

______________
|            |
|L*          |
|            |
|___________R|

(L * = левое касание)

Прыгать влево

______________
|            |
|          R*|
|            |
|L___________|
bobobobo
источник
1

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

Это распространенная дилемма при разработке на сенсорном экране, если только было популярное приложение D-pad. Я думаю, вам придется попробовать свою идею на экране мяч.

Может быть, вы могли бы иметь левый и правый вход в крайнем левом и крайнем правом углу экрана и вверх и вниз, используя верхнюю или нижнюю часть левого или правого входа. Я думаю, что имеет смысл?

james82345
источник
1

Вы можете рассмотреть возможность более точного управления, только если персонаж игрока находится в воздухе.

Например, если правая сторона экрана контролирует боковое направление, вы можете иметь всю левую сторону для прыжка. В воздухе нижняя левая половина экрана может быть «спущена», а верхняя - двойным прыжком.

Другим вариантом может быть использование схемы прыжков, такой как Jetpack Joyride или тех игр типа «пещера», где чем дольше вы держите «вверх», тем выше вы идете. У него есть потенциал, чтобы быть достаточно точным, и я думаю, будет хорошо работать с платформером типа Super Meat Boy, при условии, что уровни спроектированы соответствующим образом.

подвергать воздействию лазера
источник