Ответы:
Существует проба XNA сенсорных Thumbsticks здесь
Я хотел бы повторить, что dpad вряд ли будет подходящим интерфейсом для устройства с сенсорным экраном.
Что-то вроде того, что сделал эпос с Infinity Blade для iPhone, может вдохновить вас. Ссылка на фильм
Могу ли я отговорить вас от попыток эмулировать D-pad на устройстве с сенсорным экраном?
Проблемы с эмуляцией D-pad на сенсорном экране:
Устройство с сенсорным экраном - это гораздо больше, чем устройство, «как вам не хватает настоящей D-панели». Устройство с сенсорным экраном позволяет игроку касаться любого места на экране и взаимодействовать с любым видимым игровым элементом . Это дает широкий спектр возможностей игрового дизайна, и эти дизайны, вероятно, будут намного приятнее в использовании, чем эмулируемая D-панель.
Я знаю, что это не самый полезный ответ, но если вы не переносите проект с другой платформы, я бы посоветовал пересмотреть виртуальный D-Pad. Большинство реализаций виртуальных D-панелей в лучшем случае были плохими, отсутствие тактильной обратной связи делает их плохим выбором для платформы.
Вам гораздо лучше взглянуть на создание интерфейса к вашей игре, который подчеркивает сильные стороны платформ, а не слабые.
Как уже говорили другие, лучше придумать дизайн, который соответствует окружающей среде, а не заставлять среду соответствовать вашему дизайну, но если вы придерживаетесь D-Pad, вот как вы можете это сделать:
Если вы думаете о «точке касания» как о курсоре мыши, вы в основном создаете «горячую точку», которая реагирует на движение курсора.
Я думаю, что лучший / самый простой способ сделать это - сделать полупрозрачный (помните, что вы закрываете игровой экран) прямоугольник или кружок в одном из нижних углов, где у игрока, скорее всего, уже есть палец. Затем вы просто отслеживаете положение пальца игрока относительно центра горячей точки, и это ваше входное значение дельты.
Я вижу, что большинство людей здесь думают, что D-Pad - плохая идея, и они правы - большую часть времени. Dungeon Hunter от Gameloft для Android - отличный пример отличного D-Pad для сенсорных экранов. Он отзывчив, имеет направление 360 градусов, не "тупой". Я имею в виду, что он не «тупой», это то, что когда вы нажимаете D-Pad и вынимаете палец из области D-Pad, это не мешает тому, что происходит на экране - оно просто расширяется. Поэтому, если вы случайно выскользните из зоны D-Pad, вы не потеряете движение.
Я думаю, что направление на 360 градусов и отзывчивость вне пределов важны, и если вы сможете это сделать, у вас будет шанс сделать D-Pad правильно.
Если вы хотите реализовать D-Pad, самый простой способ, который приходит мне в голову, - это создать четыре прямоугольника (по одному для каждого направления D-Pad), а затем проверить, находится ли местоположение касания в границах любого из прямоугольников. ,
Как сказали другие парни; Подумайте дважды, прежде чем использовать D-Pad на сенсорном экране. С другой стороны, я видел людей, которые целый день играют в эти эмуляторы GBA на своих iPhone.
Это зависит от вас ... можете ли вы сказать нам, что вы планируете делать с использованием имитированного D-Pad?