Как сделать джойстик для телефона
На игровых выставках разработчики Objects in Space показывали демо своей игры с контроллером на кокпите огромного космического корабля. Он был дополнен загорающимися кнопками, аналоговыми приборами, световыми индикаторами состояния, переключателями и т.д… Это сильно влияет на погружение в игру:
На сайте игры выложен туториал по Arduino с описанием коммуникационного протокола для подобных контроллеров.
Я хочу создать то же самое для своей игры
В этом примере я потрачу примерно 40 долларов, чтобы добавить красивые, большие и тяжёлые переключатели на кокпит симулятора гонок. Основные затраты связаны с этими самыми переключателями — если бы я использовал простые переключатели/кнопки, то цена была в два раза ниже! Это настоящее оборудование, способное выдерживать 240 Вт мощности, а я буду пускать по ним только примерно 0,03 Вт.
Предупреждение: я решил сэкономить, поэтому оставляю ссылку на дешёвый китайский веб-сайт, где закупаю кучу разных компонентов/инструментов. Один из недостатков покупки компонентов по дешёвке заключается в том, что часто у них нет никакой документации, поэтому в статье я решу и эту проблему.
Основные компоненты
-
— $9
- гоночная панель переключателей зажигания — $26
- Куча соединительных проводов («male to male», «male to female», и т.д. ) — $2
Рекомендуемые инструменты
- Паяльник (стоит выбирать хороший, но с работой справится и дешёвый)
- Припой (с канифолью 60/40 — с ним легко работать, хотя он и вреден для окружающей среды..)
- Термоусадочная трубка (и промышленный фен, фен для волос или зажигалка) или изолента
(и стержни к нему), или какая-нибудь эпоксидная смола - Кусачки/плоскогубцы для зачистки проводов, или просто ножницы, если нужно сэкономить.
Программное обеспечение
- Arduino IDE для программирования процессора Arduino
- Для создания контроллера, отображающегося как настоящий аппаратный USB-контроллер/джойстик:
- FLIP для прошивки нового firmware в USB-контроллер Arduino
- Библиотека arduino-usb на github
- Моя библиотека ois_protocol на github
, если вы хотите использовать контроллер как виртуальный USB-контроллер/джойстик.
Предупреждение
Я изучал электронику в старшей школе, научился пользоваться паяльником, узнал, что красные провода нужно соединять с красными, а чёрные с чёрными… Вольты, амперы, сопротивление и связывающие их уравнения — вот и всё, чем исчерпывалось моё формальное обучение электронике.
Для меня это был обучающий проект, поэтому в нём могут быть плохие советы или ошибки!
Работаем с переключателями без документации.
Как сказано выше, я покупаю дешёвые детали у розничного продавца с низкой маржей, поэтому первым делом нужно разобраться, как работают эти переключатели/кнопки.
Простая двухконтактная кнопка/переключатель
С кнопкой всё просто — в ней нет светодиодов и всего два контакта. Переключаем мультиметр в режим непрерывности/прозвонки () и касаемся щупами разных контактов — на экране будет отображаться OL (open loop, разомкнутая цепь): это означает, что между двумя щупами нет соединения. Затем нажимаем на кнопку, по-прежнему касаясь щупами контактов — на экране теперь должно отобразиться что-то типа 0.1Ω и мультиметр начнёт пищать (сообщая о том, что между щупами присутствует очень низкое сопротивление — замкнутая цепь).
Теперь мы знаем, что при нажатии кнопки цепь замыкается, а при отжатии — размыкается. На схеме это можно обозначить как простой выключатель:
Подключаем переключатель к Arduino
Найдите на плате Arduino два контакта: помеченный GND и помеченный «2» (или любым другим произвольным числом — это контакты ввода-вывода общего назначения, которыми мы можем управлять через ПО).
Если мы подключим переключатель таким образом, а потом прикажем Arduino сконфигурировать контакт «2» как контакт INPUT, то получим цепь, показанную слева (на рисунке ниже). При нажатии кнопки контакт 2 будет напрямую соединяться с землёй / 0V, а при отжатии контакт 2 не будет соединён ни с чем. Это состояние (ни с чем не соединён) называется «floating» (состояние с высоким импедансом) и, к сожалению, это не очень хорошее состояние для наших целей. Когда мы считываем данные с контакта в ПО (с помощью digitalRead(2)), получаем LOW, если контакт заземлён, и непредсказуемый результат (LOW или HIGH), если контакт находится в состоянии floating!
Разработчикам ПО порядок может показаться обратным — при нажатии кнопки мы считываем false / LOW, а при отжатии — true / HIGH.
Можно сделать и наоборот, но у процессора есть только встроенные подтягивающие резисторы и нет утягивающих вниз резисторов, поэтому мы будем придерживаться этой модели.
Простейшая программа для Arduino, которая считывает состояние переключателя и сообщает PC о его состоянии, выглядит примерно так, как показано ниже. Вы можете нажать кнопку загрузки в Arduino IDE, а затем открыть Serial Monitor (в меню Tools), чтобы увидеть результаты.
Другие переключатели почти без документации.
Светодиодный переключатель с тремя контактами
К счастью, на основных переключателях моей панели есть пометки трёх контактов:
Я не полностью уверен, как он работает, поэтому мы снова переключим мультиметр в режим непрерывности и коснёмся всех пар контактов при включенном и отключенном переключателе… однако на этот раз мультиметр вообще не пищит, когда мы касаемся щупами [GND] и [+] при «включенном» переключателе! Единственная конфигурация, при которой мультиметр пищит (обнаруживает соединение) — когда переключатель «включен», а щупы находятся на [+] и [lamp].
Светодиод внутри переключателя блокирует измерения непрерывности, поэтому из проведённых выше проверок мы можем предположить, что LED подключен непосредственно к контакту [GND], а не к контактам [+] и [lamp]. Далее мы переключим мультиметр в режим проверки диодов (символ ) и снова проверим пары контактов, но на этот раз важна полярность (красный и чёрный щуп). Теперь если мы соединим красный щуп с [lamp], а чёрный — с [GND], то светодиод загорится, а на мультиметре отобразится 2.25V. Это прямое напряжение диода, или минимальное напряжение, необходимое для его включения. Вне зависимости от положения переключателя, 2.25V от [lamp] к [GND] заставляет LED загореться. Если мы соединим красный щуп с [+], а чёрный — с [GND], то светодиод загорится только при включённом переключателе.
Из этих показаний мы можем предположить, что внутренности этого переключателя выглядят примерно как на схеме ниже:
- [+] и [lamp] замыкаются накоротко, когда переключатель включен/замкнут.
- Положительное напряжение от [lamp] к [GND] всегда зажигает светодиод.
- Положительное напряжение от [+] к [GND] зажигает светодиод только при включенном/замкнутом переключателе.
Честно говоря, о присутствии резистора здесь можно только догадываться. Светодиод должен быть соединён с соответствующим резистором, чтобы ограничивать подаваемый на него ток, или он сгорит. Мой не сгорел и похоже, что работает правильно. На форуме веб-сайта продавца я нашёл пост, в котором говорится об установленном резисторе, поддерживающем работу до 12 В, и это сэкономило мне время на проверку/вычисления подходящего резистора.
Подключаем переключатель к Arduino
Проще всего использовать переключатель с Arduino, проигнорировав контакт [lamp]: подключить [GND] к GND в Arduino и соединить [+] с одним из пронумерованных контактов Arduino, например 3.
Если мы сконфигурируем контакт 3 как INPUT_PULLUP (так же, как и для предыдущей кнопки), то придём к показанному ниже результату. Слева вверху показано значение, которое мы будем получать, выполнив «digitalRead(3)» в коде Arduino.
Когда переключатель включен/замкнут, мы считываем LOW и светодиод загорается! Для использования такого переключателя в данной конфигурации мы можем использовать тот же код Arduino, что и в примере с кнопкой.
Проблемы этого решения
После подключения к Arduino полная цепь выглядит так:
Однако здесь мы можем увидеть, что при замыкании переключателя кроме небольшого ограничивающего ток резистора перед LED (я предполагаю, что его сопротивление 100 Ом) есть и ещё и подтягивающий резистор на 20 кОм, который ещё больше снижает величину тока, текущего через светодиод. Это означает, что хотя цепь и работает, светодиод будет не очень ярким.
Ещё один недостаток этой схемы в том, что у нас нет программного контроля над LED — он включён, когда включён переключатель, и отключен в противоположном случае.
Можно посмотреть, что случится, если мы подключим контакт [lamp] или к 0V, или к +5V.
Если [lamp] подключен к 0V, то светодиод постоянно отключен (вне зависимости от позиции переключателя), а распознавание позиции Arduino всё равно выполняется. Это позволяет нам при желании программно отключать LED!
Если [lamp] подключен к +5V, то светодиод постоянно включен (вне зависимости от позиции переключателя), однако распознавание позиции Arduino поломано — с контакта всегда будет считываться HIGH.
Подключаем этот переключатель к Arduino правильно
Мы можем преодолеть описанные выше ограничения (низкий ток/яркость светодиода и отсутствие программного контроля над светодиодом), написав больше кода! Чтобы разрешить конфликт между возможностью управления светодиодом и сломанным из-за него распознаванием позиции, мы можем разделить две задачи по времени, то есть временно отключать LED при считывании контакта датчика (3).
Сначала подключим контакт [lamp] к ещё одному контакту Arduino общего назначения, например, к 4, чтобы можно было управлять lamp.
Чтобы создать программу, которая будет правильно считывать позицию переключателя и управлять светодиодом (мы заставим его мигать), нам достаточно просто отключать светодиод перед считыванием состояния переключателя. Светодиод будет отключаться всего на доли миллисекунд, поэтому мерцание не должно быть заметно:
В Arduino Mega контакты 2-13 и 44-46 могут использовать функцию analogWrite, которая на самом деле не создаёт напряжения от 0V до +5V, а аппроксимирует его при помощи прямоугольной волны. При желании можно использовать её для управления яркостью светодиода! Этот код заставит свет пульсировать, а не просто мерцать:Подсказки по сборке
Пост и так уже довольно большой, так что я не буду добавлять ещё и туториал по пайке, можете его загуглить!
Однако приведу самые базовые советы:
- При соединении проводов с большими металлическим контактами сначала убедитесь, что паяльник нагрелся и какое-то время нагревайте и металлический контакт. Смысл пайки заключается в образовании постоянного соединения созданием сплава, но если горячей является только одна часть соединения, то у вас запросто может получиться «холодное соединение», которое выглядит как соединение, но на самом деле не соединено.
- При соединении двух проводов наденьте сначала на один из них кусок термоусадочной трубки — после соединения трубку надеть будет нельзя. Это кажется очевидным, но я постоянно это забываю и мне приходится использовать вместо трубки изоленту… Протяните термоусадочную трубку подальше от соединения, чтобы она не нагрелась раньше времени. Проверив паянное соединение сдвиньте на него трубку и нагрейте её.
- Тонкие маленькие соединительные провода, которые я упоминал в начале, хорошо подходят для соединений без пайки (например, при подключении к Arduino!), но довольно хрупкие. После пайки используйте для их закрепления клеевой пистолет и устраните из самого соединения все напряжения. Например, красные провода на показанном ниже снимке при работе можно случайно потянуть, поэтому после пайки я зафиксировал их каплей горячего клея:
Но после заливки этого firmware в Arduino устройство становится USB-джойстиком и перестаёт быть Arduino. Поэтому чтобы перепрограммировать его, нужно заново перепрошить исходную firmware Arduino. Эти итерации довольно мучительны — загружаем код Arduino, прошиваем firmware джойстика, тестируем, прошиваем firmware arduino, повторяем…
Пример программы для Arduino, которую можно использовать с этим firmware, показан ниже — он конфигурирует три кнопки в качестве вводов, считывает их значения, копирует значения в структуру данных, ожидаемую этим firmware, а затем отправляет данные. Смыть, намылить, повторить.
Если у вас есть контроль над игрой, с которой должно взаимодействовать устройство, то в качестве альтернативы можно общаться с контроллером напрямую — нет необходимости делать его видимым для ОС как джойстик! В начале поста я упомянул Objects In Space; именно такой подход использовали её разработчики. Они создали простой коммуникационный ASCII-протокол, позволяющий контроллеру и игре общаться друг с другом. Достаточно просто перечислить последовательные порты системы (они же COM-порты в Windows; кстати, посмотрите, как ужасно это выглядит на C), найти порт, к которому подключено устройство с названием «Arduino», и начать считывать/записывать ASCII по этой ссылке.
На стороне Arduino мы просто используем функции Serial.print, которые применялись в показанных выше примерах.
Она содержит код на C++, который можно интегрировать в игру и использовать её в качестве «сервера», и код Arduino, который можно выполнять в контроллере, чтобы использовать его в качестве «клиента».
Настраиваем Arduino
В example_hardware.h я создал классы, чтобы абстрагировать отдельные кнопки/переключатели; например, «Switch» — это простая кнопка из первого примера., а «LedSwitch2Pin» — переключатель с управляемым светодиодом из второго примера.
Код примера для моей панели кнопок находится в example.ino.
В качестве небольшого примера давайте допустим, что у нас есть единственная кнопка, которую нужно отправлять в игру, и один управляемый игрой светодиод. Необходимый код Arduino выглядит так:
Настраиваем игру
Код игры написан в стиле «single header». Для импорта библиотеки включим в игру oisdevice.h.
Для перечисления COM-портов и создания соединения с конкретным устройством можно использовать такой код:
Получив экземпляр OisDevice, нужно регулярно вызывать его функцию-член Poll (например, в каждом кадре), можно получать текущее состояние вывода контроллера с помощью DeviceOutputs(), использовать события устройства с помощью PopEvents() и отправлять устройству значения с помощью SetInput().Пример приложения, делающего всё это, можно найти здесь: example_ois2vjoy/main.cpp.
Чтобы контроллер мог работать в других играх (часть 2), нужно установить собственное firmware и одну программу Arduino, но чтобы контроллер полностью программировался игрой, мы использовали стандартное firmware Arduino и другую программу Arduino. Но что если мы хотим иметь обе возможности одновременно?
Пример приложения, на который я давал ссылку выше (ois2vjoy), решает эту проблему.
Это приложение общается с OIS-устройством (программа из части 3), а затем на PC преобразует эти данные в обычные данные контроллера/джойстика, которые потом передаются в виртуальное устройство контроллера/джойстика. Это означает, что можно позволить своему контроллеру постоянно использовать библиотеку OIS (другое firmware не требуется), а если мы захотим использовать его как обычный контроллер/джойстик, то просто запустим на PC приложение ois2vjoy, выполняющее преобразование.
Надеюсь, кому-то эта статья показалась полезной или интересной. Спасибо, что дочитали до конца!
Если вам стало любопытно, то я приглашаю вас поучаствовать в развитии библиотеки ois_protocol! Думаю, будет здорово разработать единый протокол для поддержки всевозможных самодельных контроллеров в играх и стимулировать игры к прямой поддержке самодельных контроллеров!
Александр Кузнецов | 27 Марта, 2018 - 14:10Выпущенные недавно игры Fortnite и PUBG не поддерживают управление с помощью беспроводных геймпадов, а оно бы им пригодилось, поскольку бегать, прицеливаться, стрелять и менять оружие, используя только наэкранные кнопки, довольно сложно. К счастью, вы можете самостоятельно собрать геймпад с физическими кнопками, благодаря которому в игре задействуются не два, а четыре пальца.
Всё, что нужно сделать, — приобрести пару специальных насадок на смартфон. Они крепятся в верхней части корпуса и с помощью специальной конструкции передают нажатия указательными пальцами на экран смартфона. Эти насадки оснащены кнопками как раз в тех местах, где оказываются указательные пальцы во время игры. В настройках игр можно поменять расположение кнопок прицеливания и стрельбы так, чтобы они находились там, где возникает контакт контроллера с экраном.
Аналогичный контроллер можно сделать своими руками без каких-либо затрат. Для этого потребуется лишь фольга и изолента или скотч. Сделайте из фольги полоски и приклейте их к верхней или задней части смартфона так, чтобы при нажатии на изоленту фольга двигалась и создавала небольшое трение об экран. Этого будет достаточно для того, чтобы виртуальные кнопки реагировали на ваши нажатия. Из подручных материалов вроде скрепок, невидимок для волос и прочего можно сделать и более сложную конструкцию, всё зависит от вашей фантазии и конструкторских способностей.
Ссылки по теме:
Текст: Для этого потребуется лишь фольга и изолента или скотч.
Рука-лицо и томный вздох.
Нет, пожалуй пока что не буду менять ник :))))))))))
Я думал, все, исправился. Ан-нет. Тогда, все по старому. Жду мануал по сборке Tesla из УАЗа. Вижу эту рубрику впервые. Несмотря на возмущения джентльменов выше, мне такой формат очень и очень понравился. Если предметы сборки — нормальные и интересные вещи, почему нет?Видимо джентельмена саркисяна не смущает, что это убожество, называемое поделкой на китайский лад, затрудняет использование смартфона в обычном его понимании или вы готовы каждый раз приклеивать (заниматься ерундой) эту аляповатую конструкцию? :))))
Судя по вашему общению, смею предположить, что у вас даже смарт диагональю менее 6 дюймов, не говоря уже об играх и тотальном зависании в pubg.
Если у вас прикрепление двух полосок фольги занимает несколько часов, могу лишь посочувствовать.
> «Судя по вашему общению, могу предположить, что у вас даже смарт диагональю меньше шести дюймов. »
Психология, которую мы заслужили.
Илья, я очень рад за то, что вы благодаря замечательнейшей компании Xiaomi нашли подходящую себе диагональ экрана. Теперь усвойте, пожалуйста, что вы не вся Вселенная, и научитесь уважать чужой выбор. А своим аппаратом пользуйтесь на здоровье.
Прикрепление двух полосок какой-то фольги скотчем это полнейший бред и не надо уходить с темы!
Теперь ЗАПОМНИТЕ пожалуйста, что 6 дюймов имеется не только у сяоми :)
Кстати, какой у вас смарт, что вы так рьяно" впрягаетесь" за эту явную дебильную идею со скотчем?
Вы игроман или просто так защищаете очередную ересь кузнецовщины? :)))
Кому-то бред, кому-то — нет. С темы я не съезжал — оставлю это вам, вы любите.
Я нигде не говорил, что шестидюймовые смартфоны есть только у Xiaomi. Претензия была только к вам, считающему, что если ему нравятся огромные экраны, то всем тоже должны.
Моё устройство — iPhone 7 Plus. Сам я не собираюсь пользоваться этим материалом, потому что если и играю, то на планшете. Но как формат статья мне зашла, чем и поделился.
Рьяные извращенцы подтянулись, которым нравится такой вид мазохизма, как описан в статье и вообще бесполезная рубрика "очумелые ручонки" от кузнецова.
В отличие от вас я как раз с темы не ухожу, а говорю по делу.
"Претензия была только к вам, считающему, что если ему нравятся огромные экраны, то всем тоже должны"
Снова говорите за меня то, что я не имел в виду. Я акцентировал внимание на том, что играть в эту игру на смарте менее чем 6 дюймов это мягко говоря только зрение портить. Если вам хочется видеть в моих коментах нечто свое, то это ваши проблемы!
"Сам я не собираюсь пользоваться этим материалом, потому что если и играю, то на планшете"
Вот именно об этом и речь, что играть на смартах с таким неудобным приспособлением это то еще развлечение. Поэтому смысла в нем почти никакого.
> «Я акцентировал внимание на том, что играть в эту игру на смарте менее шести дюймов — это, мягко говоря, только зрения портить».
А чем, собственно, это отличается от того, что я написал? Вам некомфортно играть на экранах меньше шести дюймов — и вы пишите, что так у всех; что ваше мнение — истина. Об этом и речь.
Что касается зрения, шесть дюймов и те же пять с половиной — разница для глаза малозаметная. Если уж случилось так, что от игры на смартфоне ухудшается зрение, то, уверен, происходить это будет везде.
> «Об этом-то и речь: что играть на смартах с таким неудобным приспособлением — это то ещё развлечение. Поэтому смысла в нём почти никакого».
И опять: мне не нравится — значит, не нравится всем.
А мне вот идея кажется заманчивой и интересной. Ни я, ни вы её не испытывали, поэтому вес у наших слов одинаковый. Ну и в чём спор?
Я тоже так подозреваю, но он пока "не колется" :))
Я думаю што пример с фольгой на тот случай если нет норм джойстикаИтог таков, что НИ ОДИН из читателей данного портала не высказался положительно в пользу этого китайского дерьма!,что в очередной раз доказывает позицию, что ПОДОБНУЮ ЕРЕСЬ на айгайдс лучше не публиковать, как и все детско-смешные поделки, прямо скажем спи. ые на просторах инета.
«Ни один», интересно. Я так понимаю, восемь положительных оценок статьи — это так, боты накручивают? А я, вероятно, вообще не читатель? (:
И снова, если материал не понравился вам, он автоматически становится «ересью» для всех и его нельзя публиковать. Считаете это нормальным?
Если я наставлю убогих плюсиков статье ( вы исключаете использование ботов в 2018?! :)),то обычный читатель ПО-ВАШЕМУ, будет считаться "правильно кивнувшим" как в одном предвыборном смешном разговоре? И тем самым опять же ПО-ВАШЕМУ МНЕНИЮ, утверждающим что его можно причислять в стан желающих и далее лицезреть эту чушь?
Сами себя бы не смешили подобным высказыванием про убогие плюсы.
Задумайтесь зачем они вообще тут нужны? Это чисто статистическая инфа для редактуры сайта (если такая вообще имеется). В приложении солидных изданийвы не найдете такого убожества в виде красно-зеленых циферок над/под статьей. Зачем они здесь, неужели лишь для подогрева читательского интереса, задумайтесь!
Детсад ей Богу все эти плюсики и минусики, которые не несут в себе ничего нужного. Без них все коменты и статьи" жили бы" не хуже.Плюсы означают, что человеку понравилась статья, только и всего. Желает он больше подобных постов или нет — это уже никто кроме него не знает. Вы сказали, что никому материал не понравился; я доказал, что это не так. Или вы даже с этим будете спорить?
Боты — это смешно. Надеюсь, вы всерьёз не воспринимаете возможность их деятельности здесь.
> «Задумайтесь, зачем они [плюсы] вообще тут нужны? […] В приложениях солидных изданий вы не найдёте такого убожества…»
«Солидное издание» — понятие весьма относительное, и если отбросить аксиому о том, что ваше мнение всегда является истиной в последней инстанции, увидим, что каждый «солидным» считает разные порталы. Я, к примеру, очень и очень уважаю проекты ИД «Комитет» — TJ, VC(ru) и Spark (хотя последний не читаю). Во всех этих изданиях присутствует система оценки статей.
Зачем такое нужно? Помимо упомянутого вами фидбэка, получаемого авторами, такая система помогает читателю выбрать наиболее интересные другими посетителями сайта статьи — и отсеивать неинтересные. Звучит, возможно, не слишком красиво, но на практике такое очень помогает — к примеру, когда быстро листаешь ленту и не хочешь пропустить ничего важного. Но на iG оценивание реализовано весьма криво, да и аудитория специфичная, так что тут это работает гораздо хуже, чем могло бы.
А ещё не очень понимаю, в чём смысл читать издание, которое считаете «несолидным». Чтоб было, где вылить желчь?
BT Controller можно использовать для управления различными эмуляторами для игр Mame, Playstation, CPS2 и N64. Список всех поддерживаемых эмуляторов можно найти на странице приложения в Android Market (ссылка в конце).
Вот все шаги настройки, которые необходимо выполнить, чтобы настроить приложение на контроллере и хост-устройствах.
- Как упоминалось ранее, сначала необходимо убедиться, что BT Controller установлен и работает на обоих устройствах.
- При появлении запроса активируйте Bluetooth на обоих устройствах.
- Сделайте Bluetooth обнаруживаемым на ваших устройствах из приложения, нажав на Видимый кнопка.
- Затем коснитесь Соединять и выберите устройство, с которым вы хотите выполнить сопряжение.
- В появившемся запросе выберите, хотите ли вы установить устройство в качестве Контроллер или Хозяин.
- Предполагая, что вы выбрали одно устройство в качестве контроллера, другому автоматически назначается роль хоста.
- В то время как экран устройства-контроллера автоматически превращается в виртуальный геймпад, на экране хост-устройства отображается небольшое окно предварительного просмотра в правом верхнем углу экрана. Нажав на это окно, вы попадете в Язык и настройки ввода. Убедитесь, что вы выбрали и включили BTController в качестве метода ввода по умолчанию на главном устройстве. Как только это будет сделано, в вышеупомянутом окне предварительного просмотра должна отображаться любая клавиша, нажатая на устройстве контроллера.
- Вам необходимо вручную сопоставить все клавиши на геймпаде контроллера устройства с элементами управления на эмуляторе, запущенном на главном устройстве.
- После того, как вы закончите с настройкой ключей, загрузите игровое ПЗУ в эмулятор, чтобы начать использовать свой контроллер для игры.
Экран настроек приложения (Меню> Настройки) позволяет включать / отключать вибрацию (тактильную / тактильную обратную связь) при нажатии клавиш на геймпаде.
Мы успешно протестировали приложение с HTC Desire в качестве контроллера и HTC Desire HD с N64oid в качестве хост-устройства.
Джойстик – устройство достаточно дорогое и малопрактичное, и приобрести его, взяв сумму из семейного бюджета, не совсем выгодно. Однако, в некоторые игры намного удобнее и легче играть именно с помощью джойстика, чем используя клавиатуру и мышь.
Для тех, кто не хочет тратить деньги зря, я и написал эту статью, в которой расскажу о том, как сделать полноценный джойстик из смартфона. Вы сможете играть в вашу любимую игру с комфортом, и для этого вам нужно будет лишь выполнить короткую инструкцию.
Что нужно для того, чтобы сделать джойстик из смартфона
Итак, для выполнения этой инструкции вам понадобится:
- Устройство (смартфон или планшет), которое работает под управлением Android, iOs или Windows Phone. Чем больше размер экрана, тем удобнее, рекомендую не менее 5 дюймов.
- Компьютер под управлением Windows старше версии 7.
- Игра, в которую можно играть с помощью джойстика.
Как сделать джойстик из смартфона
Решать задачу мы будем с помощью, на мой взгляд, самого мощного метода – программы Monect. И для начала я должен рассказать о её возможностях, которые очень впечатляющие:
- Можно сделать из устройства беспроводную мышь или клавиатуру.
- Есть возможность использовать разные виды джойстиков, специфично «заточенные» под жанры игр – шутеры, авиа-симуляторы, авто-симуляторы и другие. Примечательно, что есть специальный джойстик разработанный исключительно для GTA.
- Есть возможность использовать в игре акселерометр из смартфона или планшета.
- Клиент Monect на девайсе можно использовать для удалённого доступа к компьютеру.
- Позволяет подключаться по Wi-fi и Bluetooth.
Итак, а теперь о том, как сделать джойстик из смартфона. Следуйте пошаговой инструкции ниже.
Перейдите на сайт Monect и скачайте клиент для вашего мобильного устройства для соответствующей операционной системы, и установите его. Вы также можете использовать магазины Play Market, App Store или Windows Store для поиска клиента по названию и его установки.
Прокрутите эту страницу немного ниже и скачайте сервер для установки на компьютер.
После скачивания сервера, установите программу на компьютер. Установка обычная, ничего особенного. Единственное, что во время установки будет заинсталирован драйвер. Если будет запрос на разрешение, то согласитесь. Откройте программу и вы увидите такой интерфейс.
Каких-либо действий здесь производить необязательно, достаточно просто нажать на «Ок», чтобы программа свернулась в трей.
Теперь запустите клиент, который вы скачали ранее, на вашем мобильном устройстве, и нажмите на иконку внизу справа.
Затем нажмите «Scan».
И вы увидите найденные компьютеры с запущенным сервером (мы его запустили выше), к которым можно подключиться, чтобы сделать джойстик из смартфона или планшета. Нажмите на ваш компьютер и произойдёт подключение. Обратите внимание, что на компьютере и мобильном устройстве должны быть включены Wi-fi или Bluetooth.
Теперь ваши устройства подключены друг к другу. На планшете или смартфоне в клиенте нажмите на иконку «Макеты» внизу и выберите необходимый вам джойстик.
Например, джойстик для автомобильного симулятора выглядит так.
Теперь джойстик из смартфона почти сделан. Осталось мелочь. Откройте игру, в которую хотите поиграть, при необходимости выполните в ней соответствующие настройки для вашего нового джойстика, и играйте, выбрав необходимый по жанру джойстик.
Похожие статьи:
Windows XP – это операционная система достаточно старая, да и обновление к ней больше никогда…
Windows XP – это операционная система достаточно старая, да и обновление к ней больше никогда…
Windows XP – это операционная система достаточно старая, да и обновление к ней больше никогда…
Читайте также: