Сенсорное управление и обнаружение способа ввода

3

Taggé

Contributeurs

Statistiques

16,973 visites, 20,245 vues

Outils

Partager

License

This tutorial is licensed under CC BY 4.0. Please refer to the license text if you wish to reuse, share or remix the content contained within this tutorial.

Published on 17 May, 2017. Last updated 25 Feb, 2019

В наши дни наивно полагать, что у каждого пользователя сети имеется мышь и клавиатура. Большинство современных людей просматривают вэб-страницы с помощью устройств с сенсорным экраном, таких как iPhone, iPad и Android. Если ваша игра имеет управление только мышью и/или клавиатурой, то пользователи таких устройств не смогут играть в вашу игру!

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

Ввод мышью через касание

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

Управление касанием экрана

Для управления большинством других игр необходимы кнопки на экране. Их можно сделать через объекты "Sprite".

Для начала создайте новый слой без прокрутки (вы же не хотите, чтобы кнопки уезжали с экрана при прокрутке уровня!). Для этого добавьте новый слой и установите его "Parallax" в значение 0, 0. Это не позволит объектам на этом слое смещаться – они всегда будут находиться в одном и том же месте на экране.

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

Запомните: больших кнопок легче касаться!

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

Теперь используйте поведение "Is touching object" инструмента "Touch" на касаемых объектах для имитации действий управления, пример ниже:

Теперь у вас есть элементы управления, которые всегда остаются на одном и том же месте экрана и могут управлять ходом игры.

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

Альтернатива сенсорному управлению

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

1. Вместо использования экранных клавиш со стрелками нажмите вокруг игрока, чтобы переместить его. Например, в Space Blaster космический корабль может двигаться в то место, где вы касаетесь в данный момент. Другие кнопки на экране можно использовать для иных действий, например стрельба ракетами.

2. Используйте акселерометр для управление движением. При касании объекта вы можете получить его Альфа-, Бета- и Гамма-выражения. Это позволяет устройству обнаружить наклон вдоль разных осей и произвести какое-то движение.

Наконец, вы, возможно, пожелаете адаптировать элементы управления для облегчения управлением на сенсорных устройствах. Сенсорное управление может оказаться более сложным, чем использование клавиатуры и мыши, поэтому упрощение управления может сделать игру более увлекательной. Например, в игре Space Blaster, игрок должен был удерживать клавишу пробел, чтобы стрелять. Изменение стрельбы лазером на автоматическую стрельбу пока враги на экране, сделало игру увлекательнее, чем нажимание на отдельную кнопку "огонь". Также, это сделало игру немного легче, но главная цель – удовольствие от игры, а не разочарование управлением!

Обнаружение метода ввода

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

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

  • 2 Comments

  • Order by
Want to leave a comment? Login or Register an account!
    • [-] [+]
    • 1
    • AT1's avatar
    • AT1
    • 1 points
    • (0 children)

    Плохой совет. При клике мышкой срабатывает событие Тап. Так что никак не различить способ ввода

    • [-] [+]
    • 1
    • AT1's avatar
    • AT1
    • 1 points
    • (0 children)

    Плохой совет. При клике мышкой срабатывает событие Тап. Так что никак не различить способ ввода