Создание (или эмуляция) «D-Pad» на сенсорном экране; виртуальный D-Pad

12

С распространением сенсорных устройств, у многих из которых отсутствует настоящий D-Pad, мне интересно, есть ли у кого-нибудь ресурсы о том, как эмулировать D-Pad на сенсорном экране? Меня особенно интересуют примеры кода XNA и / или Android.

Nate
источник

Ответы:

5

Существует проба XNA сенсорных Thumbsticks здесь

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

Что-то вроде того, что сделал эпос с Infinity Blade для iPhone, может вдохновить вас. Ссылка на фильм

Грэм Брэдбери
источник
Для будущих посетителей ссылка выше теперь 404с. Пример теперь можно найти здесь: xbox.create.msdn.com/en-US/sample/touchthumbsticks
Габриэль Изенберг
16

Могу ли я отговорить вас от попыток эмулировать D-pad на устройстве с сенсорным экраном?

Проблемы с эмуляцией D-pad на сенсорном экране:

  • D-pad занимает место на экране, которое вы могли бы использовать для игры;
  • в отличие от настоящего D-pad, эмулируемый D-pad практически не дает обратной связи: как игрок, вы не можете определить, в каком направлении вы нажимаете, ни чувством, ни зрением (так как ваш палец прикрывает D- накладка на экран). Таким образом, ваш палец слишком легко соскальзывает с D-pad или не на ту его часть, что приводит к суете и разочарованию.

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

Гарет Рис
источник
1
Кроме того, реализация Pathing для такого маленького экрана тривиальна. Масштаб и прокрутка игровой карты, затем нажмите и путь!
Стивен Фурлани
9

Я знаю, что это не самый полезный ответ, но если вы не переносите проект с другой платформы, я бы посоветовал пересмотреть виртуальный D-Pad. Большинство реализаций виртуальных D-панелей в лучшем случае были плохими, отсутствие тактильной обратной связи делает их плохим выбором для платформы.

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

wkerslake
источник
Видимо Гарет ответил так же, как я печатал это. Здесь нечего видеть ... двигаться дальше.
wkerslake
Рад видеть, что я не одинок в этом!
Гарет Рис
3

Как уже говорили другие, лучше придумать дизайн, который соответствует окружающей среде, а не заставлять среду соответствовать вашему дизайну, но если вы придерживаетесь D-Pad, вот как вы можете это сделать:

Если вы думаете о «точке касания» как о курсоре мыши, вы в основном создаете «горячую точку», которая реагирует на движение курсора.

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

Sinenomen
источник
Так кажется, что большинство игр решают проблему с контроллером d-pad. Это отстой для точного платформера хотя.
Нейлер
2

Я вижу, что большинство людей здесь думают, что D-Pad - плохая идея, и они правы - большую часть времени. Dungeon Hunter от Gameloft для Android - отличный пример отличного D-Pad для сенсорных экранов. Он отзывчив, имеет направление 360 градусов, не "тупой". Я имею в виду, что он не «тупой», это то, что когда вы нажимаете D-Pad и вынимаете палец из области D-Pad, это не мешает тому, что происходит на экране - оно просто расширяется. Поэтому, если вы случайно выскользните из зоны D-Pad, вы не потеряете движение.

Я думаю, что направление на 360 градусов и отзывчивость вне пределов важны, и если вы сможете это сделать, у вас будет шанс сделать D-Pad правильно.

Эспен
источник
1

Если вы хотите реализовать D-Pad, самый простой способ, который приходит мне в голову, - это создать четыре прямоугольника (по одному для каждого направления D-Pad), а затем проверить, находится ли местоположение касания в границах любого из прямоугольников. ,

Как сказали другие парни; Подумайте дважды, прежде чем использовать D-Pad на сенсорном экране. С другой стороны, я видел людей, которые целый день играют в эти эмуляторы GBA на своих iPhone.

Это зависит от вас ... можете ли вы сказать нам, что вы планируете делать с использованием имитированного D-Pad?

HDgam3r
источник