2010-11-04 4 views
1

Я думал о переносе старой платформы ZX Spectrum платформер на iPhone. Как элементы управления реализованы в играх на платформе iPhone? это акселерометр или они рисуют кнопки на экране, которые соответствуют направлениям и стрельбе?iPhone платформер. Органы управления?

ответ

9

Лучшие игры позволяют выбрать либо наклон, либо касание в меню «Параметры». Некоторые люди предпочитают наклон, но могут лежать или кататься в машине, поэтому вместо этого вы хотите использовать прикосновение. Или они могут устать от своих больших пальцев, блокируя экран и долгое время для более точного аналогового ввода, а затем желание наклона. Они будут любить вас, если вы позволите им выбрать для себя!

Что предпочтительнее также зависит от типа игры и того, какие элементы управления соответствуют этой игре. Акселерометр отлично справляется с аналоговым джойстиком, но вам все равно нужно нажать, если вы хотите «стрелять» или «прыгать» и т. Д. Входом вашей ретро-игры были, вероятно, клавиши со стрелками или цифровой джойстик (направление 4 или 8), поэтому вы хотите установить пороговые значения того, насколько наклон в заданном направлении вызывает направленный вход. Было бы неплохо позволить игроку установить для него настройку чувствительности наклона. (Кроме того, вы можете разрешить установку «default down vector», когда игра запускается или пользователь меняет ее в параметрах ... поэтому пользователю не всегда нужно удерживать устройство параллельно земле, чтобы играть в вашу игру . Это может также потребовать различной чувствительности на ось, основанной на угле, но я не буду вдаваться в это здесь.)

Наглядные элементы управления (виртуальные кнопки) на самом деле распространены в играх iPhone и легко реализуются, но у них есть некоторые недостатки. Во-первых, ваши большие пальцы скрывают часть экрана! Во-вторых, изображения кнопок, даже если они полупрозрачны, могут в любом случае скрывать игровые элементы (некоторые важные). В-третьих - и это немного сложнее понять - они могут быть более сложными в использовании, поскольку они не дают никакой осязательной обратной связи. Более конкретно: вы застряли с позиционированием разработчика для «центральной точки», которая может соответствовать естественному положению своего пальца, но не обязательно вашей! Так что трудно перефокусировать свой палец после того, как вы двигались. Кроме того, может быть трудно определить, сколько нужно передвинуть большой (слишком или слишком маленький) палец для регистрации движения в определенном направлении.

Чтобы устранить эти упомянутые недостатки, я рекомендую использовать другой подход. Когда игрок сначала касается экрана, рассматривайте это как «центральную точку». Затем, когда игрок скользит большим пальцем и удерживает его на экране, рассматривайте его как «конечную точку». ВЕКТОР между центральным и конечным точками должен определять его направление. Он отлично подойдет для цифровых (8 позиционных входов), и он отлично подходит для аналоговых входов (возьмите длину вектора). Для кранов, чтобы прыгать или стрелять, дайте игроку постукивать там, где он хочет! Если вам требуется больше элементов управления, чем простая кнопка «огонь», пользователь может коснуться верхней половины экрана, чтобы запустить огонь, например, нижнюю половину экрана для перехода.

Надеюсь, что это помогает. Как вы видите, это сложная проблема ... но очень важная. Нет ничего хуже, чем неиграбельная схема управления, разрушающая в противном случае хорошую игру! Удачи!

+0

Большое спасибо, у меня были те же самые идеи, что и мои мысли :-) – Istvan

+0

Когда я разработал свою игру для шутеров, я сделал то же самое. Уитривер игрок коснулся и пошевелил пальцем, дельта-расстояние было перемещенным расстоянием. – Istvan

+0

Отлично! Я пробовал как сенсорные схемы управления в играх, которые я написал, так и метод «касаться в любом месте и перетаскивании» чувствует себя намного более естественным и текучим. Иногда полезно отображать немного графики (я использовал стрелку, нарисованную с помощью GL_LINE), чтобы донести до пользователя направление вектора и его величину. – electromaggot

5

Я считал многие из тех же вариантов, что и вы, ребята. Я решил отказаться от использования полупрозрачных кнопок от get-go, потому что я всегда ненавидел их как игроков iPhone-игр. Это главным образом потому, что без осязательной обратной связи мои пальцы, как правило, ускользают от кнопок. Нет ничего хуже, чем думать, что ты будешь прыгать и падать в овраг. Также я почувствовал, что, имея D-Pad, я буду придерживаться устаревшего представления о том, как эти игры должны контролироваться. Если iPhone не имеет джойстика (и он действительно не видит, что Apple помешала кому-либо создать настоящий внешний контроллер для iOS), я должен действительно полагаться на то, что он имеет в своем распоряжении, а именно на сенсорный экран и акселерометр.

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

  1. Простое прикосновение: Вы нажмите и удерживайте слева от игрока спрайт двигаться влево, вправо от игрока спрайт двигаться правильно. Чтобы остановиться, вы поднимаете свой палец с экрана, а трение/инерция возвращает его в тупик. Вы касаетесь выше игрока, чтобы прыгать (либо прямо над или в пределах 45 градусов по оси Y). Я (как разработчик игры) обнаружил, что эти элементы управления полностью интуитивно понятны и были несколько взволнованы, когда первые два человека, которых я показал игре, инстинктивно пытались пронести экран, и, вы знаете, ничего не произошло. Может быть, они привыкли к моей простой сенсорной системе и научились любить ее, или, может быть, я просто потерял перспективу и то, что казалось мне интуитивным, было не таким универсальным, как я думал.

  2. Tilt Walking: Вы наклоняете телефон влево, чтобы идти вправо, вы наклоняете телефон вправо, чтобы идти влево, и вы касаетесь экрана, чтобы прыгать. Правильно, игрок действительно работает в противоположном направлении от того, как вы наклоняетесь. Как будто он всегда бежит в гору. Это то, что мне кажется естественным. На самом деле, в некотором смысле, это было еще более естественным, чем метод № 1 (Simple Touch), но точность была довольно ужасной. Игрок всегда делал то, что я ожидал от него, но я обнаружил, что я просто не мог использовать его, чтобы играть в мою игру (даже когда я обезумел от физики, игрок почти всегда перевыполнял платформы).

  3. Flick Walking: Это была моя первая попытка обнаружения движения салфетки. Пользователь будет щелкать (быстро проведите пальцем по экрану). Игрок будет бежать в направлении щелчка со скоростью, пропорциональной скорости щелчка. Это казалось мне несколько интуитивным, и игра была определенно играбельна, но у нее были некоторые недостатки. Во-первых, щелчки могут быть обнаружены только после их завершения. Это означает, что всегда существует задержка между поведением пользователя и экранной реакцией. Во-вторых, когда я передал ее моей жене, чтобы рассказать о ней, первое, что она сделала, медленно протащила палец по экрану, не отпуская ее, а маленький спрайт справился совершенно неподвижно. Что приводит нас к четвертому и окончательному вариантам ...

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

+0

Вы можете увидеть конечный результат здесь: https://itunes.apple.com/us/app/floyds-worthwhile-endeavor/id783782940?mt=8 – DavidH

Смежные вопросы