- Используйте Android как джойстик или рулевое колесо на вашем компьютере
- Игровой контроллер для ПК на Android
- Описание задачи
- Сервер
- Клиент
- Как это все работает
- Заключение
- Использование телефона Android в качестве ПК GamePad или рулевого колеса
- Используйте устройство Android в качестве руля ПК
- Используйте устройство Android как геймпад для ПК
- Андроид руль для компьютера
Используйте Android как джойстик или рулевое колесо на вашем компьютере
Любой человек, любящий играть в игры на персональном компьютере, наверняка имеет в своем арсенале рулевое колесо или же стандартный джойстик. А есть такие любители, поиграть, которые используют для игр WiiMote.
Но мы расскажем вам о способе, который еще надежнее и практичнее, к тому же он недавно появился. Ваш телефон также можно использовать в роли руля, джойстика, а с помощью гироскопа, можно даже использовать FPS навигацию/режим стрельбы.
С помощью Monect вы сможете на определенной дистанции управлять вашим ПК и даже играть в игры, применяя при этом устройство, работающее на ОС Android. Осуществить это можно с помощью Bluetooth или же Wi-Fi, которые имеются на любом таком устройстве. Monect позволяет использовать ваше устройство Android в качестве рулевого колеса, джойстика, работающих на акселерометре. А также сможете прицеливаться в различных 3D FPS шутерах, если в вашем девайсе есть гироскоп.
Ваш android девайс превратится, при помощи Monect, в мышь/клавиатуру/джойстик. Устройство, работающее на Android, естественно может использоваться в качестве беспроводной клавиатуры или мыши, как и множество иных идентичных приложений. Особенностью данного приложения выступает то, что оно имеет возможность использоваться в роли контроллера для разнообразных жанров игр: FPS, гонки, RPG и так далее. Monect использует абсолютно все датчики устройства работающего на ОС Android: гироскоп, акселерометр, G-сенсор и так далее, для обеспечения полноценной возможности играть, без лагов и задержек. К примеру, с помощью гироскопа можно осуществить режим FPS. А для того чтобы прицелиться или поиграть полноценно в гонки — G-сенсор.
Функции приложения Monect для android:
RaceMode — наслаждайтесь играми в гонки на ПК, такими как NFS, а также управляйте рулевым колесом, с помощью девайса, имеющего G-сенсор.
Джойстик — играйте в разнообразные приключенческие игры: Prince of persia, Street fighter и другие, благодаря полноценной имитации джойстика.
FPS mode — используйте гироскоп своего устройства для прицеливания, чувствуя при этом оружие в руках. Стоит отметить, что отлично поддерживается в Call of Duty!
TouchPad — это своеобразный симулятор сенсорной панели, который поддерживает различные жесты, прямо как на устройстве трекпад от Apple.
My Computer — просматривайте и используйте файлы, находящиеся на вашем ПК, прямо на своем девайсе.
Keyboards — а это симулятор цифровой и буквенной клавиатуры, а также функциональных клавиш.
Text transfer — вы сможете набрать текст, прямо на смартфоне, а после этого, при помощи одного нажатия, передать его на свой ПК.
PPT mode — с помощью этого режима, вы сможете присутствовать на совещании или на важной лекции.
Browser, Media Control — вы сможете легко управлять браузером, а также медиа-плеером.
Источник
Игровой контроллер для ПК на Android
Всем привет! В данной статье я хочу рассказать о том, как можно сделать из своего Adndroid смартфона игровой контроллер (в простонародье — джойстик) для обычного ПК, а именно руль.
Описание задачи
Поведение руля будет эмулироваться с помощью акселерометра. Для этого ведется непрерывное сканирование пространственных координат и эмпирическим путем подбираются границы для каждого направления движения. Исходя из этих данных в реальном времени генерируются сочетания игровых клавиш. Например: W — вперед, WA — вперед и влево и т. д.
Для доставки этих данных на ПК должен быть запущен сервер, который принимает входящие команды и эмулирует нажатия соответствующих клавиш. Сервер можно сделать однопоточным, чтобы подключался только один смартфон. Соединение будет осуществляться по Wi-Fi.
А теперь самое интересное…
Сервер
Сервер реализован на C++ под Windows. Основная его задача — непрерывно принимать входящие сообщения и нажимать клавиши. Ниже приведен основной и простой код для данной задачи:
Copy Source | Copy HTML
- while ( true ) <
- std::cout «Wait for connection. \n» ;
- try <
- socket = server.Accept();
- > catch ( const char *error ) <
- std::cout endl ;
- exit( 0 );
- >
- bool keepAlive = true;
- int timeout = 10000 ;
- setsockopt( server.getSocket( ), SOL_SOCKET, SO_KEEPALIVE, ( char* )&keepAlive, size of( bool ));
- setsockopt( server.getSocket( ), SOL_SOCKET, SO_RCVTIMEO, ( char* )&timeout, size of( int ));
- std::cout «Connected!\n» ;
- while ( true ) <
- std: :string msg = socket->ReceiveLine();
- if ( msg.empty( ))
- break;
- processKeys( msg.c_str( ));
- >
- std::cout «Disconnected.\n\n\n» ;
- >
Copy Source | Copy HTML
- void pressKeys( char key1, char key2 ) <
- // отжать предыдущие клавиши
- for ( std::map ::iterator it = scanCodes.begin( ) ; it != scanCodes.end(); it++ ) <
- char curKey = it->first;
- if ( curKey != key1 && curKey != key2 )
- upKey( curKey );
- >
- downKey( key1 );
- downKey( key2 );
- >
- void downKey( char key ) <
- keybd_event( VkKeyScan(key ), scanCodesАндроид руль для компьютера, 0 , 0 );
- >
- void upKey( char key ) <
- keybd_event( VkKeyScan(key ), scanCodesАндроид руль для компьютера, KEYEVENTF_KEYUP, 0 );
- >
Клиент
Copy Source | Copy HTML
- public class MainActivity extends Activity implements SensorEventListener <
- @Override
- public void onCreate(Bundle savedInstanceState) <
- // .
- sensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
- accelerometer = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
- //.
- >
- @Override
- public void onSensorChanged(SensorEvent event ) <
- if ( event .sensor.getType() == Sensor.TYPE_ACCELEROMETER) <
- long curTime = System.currentTimeMillis();
- // считывание данных раз в 100 мс, иначе телефон загнется от сборщика мусора
- if (lastUpdate == — 1 || (curTime — lastUpdate) > 100 ) <
- lastUpdate = curTime;
- x = event .values[DATA_X];
- y = event .values[DATA_Y];
- z = event .values[DATA_Z];
- xLabel.setText(String.format( «X: %+2.5f» , x));
- yLabel.setText(String.format( «Y: %+2.5f» , y));
- zLabel.setText(String.format( «Z: %+2.5f» , z));
- try <
- sendKeys(); // анализ координат для отправки клавиш на сервер
- > catch (Exception e) <
- e.printStackTrace();
- >
- >
- >
- >
- >
Важный момент — считывать данные с акселерометра надо с определенным интервалом, иначе ваша программа моментально подвесится от непрерывных запросов к сенсору. Также при сворачивании надо отвязывать listener от акселерометра, чтобы ресурсы системы и батареи не тратились зря. Для этого в методах onResume и onPause делается следующее:
Copy Source | Copy HTML
- @Override
- protected void onResume() <
- super.onResume();
- sensorManager.registerListener( this , accelerometer, SENSOR_DELAY_NORMAL);
- >
- @Override
- protected void onPause() <
- super.onPause();
- sensorManager.unregisterListener( this );
- >
Код для генерации клавиш очень прост. Все границы определялись экспериментальным путем.
Copy Source | Copy HTML
- private String getKeys() <
- String keys = «» ;
- if (z > 7 . 5 )
- keys += «W» ;
- else
- keys += «S» ;
- if (y 3 )
- keys += «A» ;
- else if (y > 3 )
- keys += «D» ;
- return keys;
- >
Как это все работает
Испытывал я это все на Need For Speed Most Wanted. По ощущениям, конечно, не как настоящий руль, но играть можно.К сожалению, видео снять не получилось — в доме одна камера, и то на испытуемом телефоне. В ближайшее время обязательно выложу. Вот как это выглядит на ПК и на смартфоне:
Заключение
Пока главный недостаток в сервере — это глобальное нажатие клавиш, не зависящее от приложения. В дальнейшем будет чем заняться. Еще одна проблема с которой я столкнулся — постоянный разрыв соединения. Не нашел лучшего решения, чем постоянный реконнект при обрыве связи.
Источник
Использование телефона Android в качестве ПК GamePad или рулевого колеса
Некоторые компьютерные игры лучше всего подходят для геймпада, например файтинги и платформеры, а играть в гоночные игры с клавиатурой просто ужасно. Может быть, вы много путешествуете со своим игровым ноутбуком, а геймпад просто занимает дополнительное место в вашей сумке — не говоря уже о целом рулевом колесе.
В этой статье я собираюсь показать вам, как настроить свой телефон Android в качестве геймпада или руля для игр на ПК.
Используйте устройство Android в качестве руля ПК
Большинство современных устройств Android имеют встроенные гироскопы и акселерометры, что в основном означает, что они точно обнаруживают наклон направления. Таким образом, использование телефона в качестве руля для гоночных игр вполне возможно, с минимальными настройками. Ваш телефон Android и ваш компьютер должны быть подключены к одной сети Wi-Fi или через Bluetooth.
Существует множество приложений для этого, и мы перечислим несколько, но для целей данного руководства мы будем использовать Touch Racer, который вы можете получить. Вот в Google Play. Touch Racer очень прост в настройке, к сожалению, он предлагает только кнопки ускорения и торможения, но другие приложения могут предлагать дополнительные кнопки для переключения, просмотра камеры и т. Д.
- После установки Touch Racer на телефон Android также необходимо загрузить клиент для ПК.
- Запустите Touch Racer на своем телефоне Android, а также откройте его на своем ПК. Если ваш телефон и ПК подключены к одной и той же сети Wi-Fi или подключены по Bluetooth, клиент ПК должен автоматически определить ваше устройство и изменить статус подключения на «подключен» без дополнительных действий.
- В приложении Touch Racer на телефоне перейдите в «Настройки». Различные настройки полностью на ваше усмотрение, но они в основном имеют дело с чувствительностью рулевого управления. Чувствительность рулевого управления не требует пояснений, в то время как чувствительность акселератора и тормоза указывает, сколько вам нужно провести пальцем по экрану вверх или вниз для достижения максимального ускорения / торможения.
- Одной настройкой, которую вы можете изменить, является датчик рулевого управления — измените его с «Просто акселерометр» на «Акселерометр + гироскоп». Приложение утверждает, что это дает более точное управление за счет задержки, но я не заметил никакой задержки.
- После того, как вы настроили приложение, просто нажмите «Начать игру», а затем запустите гоночные игры по вашему выбору на вашем ПК. В опциях игры вам может потребоваться настроить элементы управления на «рулевом колесе».
Кроме того, если вы заметили, что ваш автомобиль поворачивается без наклона телефона, проверьте, есть ли в вашей игре опция «Перекалибровать рулевое колесо», и нажмите ее, удерживая телефон в идеальном горизонтальном положении, как если бы вы держали фактический руль в мертвой точке.
Используйте устройство Android как геймпад для ПК
Существует множество различных приложений для управления устройством на вашем Android-устройстве, в том числе в качестве геймпада, но мы хотим иметь приложение с настраиваемой раскладкой кнопок, эмуляцией большого пальца и хорошим временем отклика.
- Для этого мы будем использовать DroidJoy, поскольку он поддерживает как XInput, так и DInput, но есть и другие подобные приложения, если вы просматриваете Play Store.
- Установите приложение DroidJoy на свое устройство, а также DroidJoy настольный клиент,
- Запустите настольный клиент на своем ПК и убедитесь, что ваше Android-устройство и ПК подключены к одной и той же сети Wi-Fi или используют соединение Bluetooth.
- Запустите приложение DroidJoy на вашем Android-устройстве и нажмите «Поисковый сервер» в окне «Подключиться». Затем просто подключитесь к клиенту ПК, и все готово.
- В меню «Настройки» приложения Android вы можете настроить макет кнопки по своему вкусу или выбрать предварительно настроенный макет в раскрывающемся меню.
Источник
Андроид руль для компьютера
Руль для ПК, OpenTrack, Android, XInput
Руль для ПК, эмулирующий Xbox геймпад, с использованием Android смартфона (с гироскопом) и OpenTrack, по Wi-Fi или USB. Эмулируются левый и правый триггеры, а также левый стик, обычно этого достаточно для гонок. Наклон вперед активирует правый триггер (движение вперед), а наклон назад левый триггер (движение назад). Наклонами влево и вправо активируется левый стик (движения влево, вправо). Наклоны плавно изменяют значения триггеров и стика.
Загрузите и установите последнюю версию OpenTrack и запустите её. Установите FreePie IMU на Android из архива.
В настройках OpenTrack необходимо выбрать источник данных: «FreePie UDP receiver», а выходной интерфейс: «freetrack 2.0 Enhanced». Далее нажать кнопку «Запустить».
Запустите приложение «XInputTest.exe» для проверки, из загруженного архива. Попробуйте наклонить смартфон в разные стороны.
Значение Pitch («Игровые данные» в OpenTrack) отвечает за поворот руля влево и вправо. Значение Roll («Игровые данные» в OpenTrack) отвечает за движение вперед и назад. Возможно, что вам придется обменять местами Yaw, Pitch или Roll, в настройках профиля OpenTrack.
В «WheelSetup.ini» можно изменить слепую зону (для отсутствия какого-либо движения), максимальные и минимальные углы для активирования триггеров. Более подробно описано в конфигурационном файле. Углы можно посмотреть в OpenTrack («Игровые данные»).
После настройки необходимо скопировать файлы «xinput1_3.dll» (для 32 битных игр, а для 64 битных скопировать «xinput1_3x64.dll» и переименовать в «xinput1_3.dll») и «WheelSetup.ini» в папку с игрой, и запустить игру. Возможно, для некоторых старых игр, придется переименовать «xinput1_3.dll» в одно из названий: «xinput1_4.dll» (Windows 8 / metro apps only), «xinput1_2.dll», «xinput1_1.dll» или «xinput9_1_0.dll».
После запуска игры нажать «F9» и запустить приложение FreePie для Android, ввести IP адрес компьютера и нажать кнопку. Кнопка «F10» отключит руль.
Источник