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

Favourite 265 favourites
Tutorial written by AshleyOriginally published on 22nd, December 2011 - 5 revisions

Translation Team:

7 total revisions

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Unlock your full gamedev potential

Upgrade to the Personal Edition of Construct 2, it has way more features and won't holding back from making money and using your full creativity like the free edition does. It's a one off payment and all Construct 2 editor updates are free for life!

View deals

Plus, it's got a lot of additional features that will help you save time and make more impressive games!

Congratulations on finishing this tutorial!

Did you learn a lot from it? Share it now with your friends!

Share and Copy this Tutorial

You are free to copy, distribute, transmit and adapt this work with correct attribution. Click for more info.

Comments

1
shtirlizby 662 rep

Переименуйте статью, пожалуйста.

Saturday, October 12, 2013 at 7:50:26 PM
3
Zhegloff 1,866 rep

Oh dear god! Ffs stop using Google translate. For Russians this version of trasnlate look like ridiculous vocabulary hell!

Monday, January 13, 2014 at 7:08:48 PM
0
esgame 1,528 rep

LOL. Not Use google translate. ROFL.

Wednesday, April 20, 2016 at 1:55:22 PM

Leave a comment

Everyone is welcome to leave their thoughts! Register a new account or login.