Comments 30
Эмуляцию осей не пробовали реализовать? У клавиши всего два положения, так все наслаждение от использования акселерометра исчезает.
Пока нет. Вообще, была мысль о полной эмуляции руля через драйвер. Но думаю, это чересчур надуманно.
На маркете есть приложение «DroidPad: PC Joystick & mouse». Работает через PPJoy, в качестве руля выступает неплохо, но всё управление на телефон перенести с помощью него трудно, из-за того что нажимать сенсорные кнопки неудобно, а одним акселерометром всем не поуправляешь.
Ох, нет, как раз не надуманно: дело в том, что приложение для эмуляции нажатий клавиш я уже видел в маркете (или на 4pda), ездить, скажу так, не слишком удобно — проверял на Life for Speed. А вот с эмуляцией осей было бы куда интереснее.
Я как-то занимался этой идеей, но скоро забросил. Проект работает, но есть баги.
Для эмуляции осей я использовал PPJoy драйвер.
Ознакомиться с исходниками можно на странице проекта: code.google.com/p/agamepad/
Для эмуляции осей я использовал PPJoy драйвер.
Ознакомиться с исходниками можно на странице проекта: code.google.com/p/agamepad/
Я всегда подозревал, что у таких решений с отзывчивостью не очень. Т.е. например в файтинг будет сложновато порубиться.
на руле-то? :)
… «Это файтинг с участием двух водителей после аварии. Не могут решить кто виноват и решили выяснить отношения в честном поединки с использованием рулей от своих разбитых машин в качестве оружия. Скоро, во всех магазинах страны!»…
Не, имею ввиду когда используешь какое-нибудь такое устройство в качестве геймпада.
Я видел видео, где вполе сносно играются гонки.
www.youtube.com/watch?v=V2peYSDY8OA&feature=related
www.youtube.com/watch?v=V2peYSDY8OA&feature=related
В статье не хватает объяснения сетевой части под Android и собственно связи с сервером. Лично мне бы это было интересно даже больше чем работа с сесором. Ну за исходники спасибо, по копаюсь.
По пытался запустить исходник на Acer liquid 2.2, но сразу после запуска приложение зависает (UI не реагирует на нажатия), ну а после традиционное предложение закрыть или подождать. Чяднт?
Свою ошибку понял (как-то вылетело из головы указать в исходниках свой IP). В итоге приложение успешно запустилось, данные с акселерометра снимаются, но вот соедениться с сервером так и не смог — всегда получаю Connection refused. Буду пытаться разбираться в причинах.
Реквестирую эмуляцию джойстика и (самое главное) осей. Сам давненько планировал сделать джойстик — руль на основе акселорометра, но упёрся в отсутствие примеров и документации реализации осей.
PPJoy пилил-пилил, но заметных результатов так и не добился.
PPJoy пилил-пилил, но заметных результатов так и не добился.
в Q/A спрашивал, но видимо, тема была не интересна
habrahabr.ru/qa/1773/
habrahabr.ru/qa/1773/
code.google.com/p/agamepad/source/browse/#svn%2Ftrunk%2FaGamepad%2FWin
Переписываешь в этой проге получение данных под свой протокол и подсовываешь скомпилированную dll для PPJoy.
Переписываешь в этой проге получение данных под свой протокол и подсовываешь скомпилированную dll для PPJoy.
Спасибо, вроде то, что нужно.
Я тут подумал, прежде, чем делать велосипед,… а есть где-нибудь описание протокола в уже реализованной dll? Возможно, просто клиентскую часть сделаю совместимой, плшлю нужные байты в сокет.
Великолепно! И главное, реализация протокола великолепная, посылать 16 байт по UDP… Я чуть было не пошёл по пути поднятия http сервера, и чтобы клиент эмулировал упрощённый аналог браузера, по GET давая команду на подвинуть джойстик.
Еще раз спасибо!
Получилось собрать клиентскую часть, прекрасно работает, кнопки считывает, генерирует нажатия кнопок джойстика, акселорометр генерирует поворот по оси X, (а также всегда константой 75 по оси Y) написал полностью на php, гонки вполне играбельны.
Соотвественно у меня возник вопрос:
Это то, что серверная (PC + controller.dll) часть способна сгенерировать, или тот максимум, что выдаёт Android-клиент (который я не использую)? Дело в том, что акселорометр на моём устройстве выдаёт значения от -255 до +255, а 510 больше, чем 150, поэтому чувствительность хромает. В случае, если хочу использовать использовать больше значений, надо залезть в третий байт (сейчас всё посылаю в значениях от 1 до 150) в четвёртом байте), или PC версия его прогнорирует?
Другими словами, откуда взялось число 150?
Получилось собрать клиентскую часть, прекрасно работает, кнопки считывает, генерирует нажатия кнопок джойстика, акселорометр генерирует поворот по оси X, (а также всегда константой 75 по оси Y) написал полностью на php, гонки вполне играбельны.
Соотвественно у меня возник вопрос:
axis
Each axis has values from 0 to 150
Это то, что серверная (PC + controller.dll) часть способна сгенерировать, или тот максимум, что выдаёт Android-клиент (который я не использую)? Дело в том, что акселорометр на моём устройстве выдаёт значения от -255 до +255, а 510 больше, чем 150, поэтому чувствительность хромает. В случае, если хочу использовать использовать больше значений, надо залезть в третий байт (сейчас всё посылаю в значениях от 1 до 150) в четвёртом байте), или PC версия его прогнорирует?
Другими словами, откуда взялось число 150?
Есть прога Nebudroid но весьма глючная (http://nebudroid.com)
В проге GRemote есть такая функция. Там устанавливается драйвер для джостика, поддерживает 2 оси.
Как раз вчера хотел поиграть в НФС на телевизоре. Немного помучился с калибровкой, но вроде работало, хотя при резких поворотах глючило.
Как раз вчера хотел поиграть в НФС на телевизоре. Немного помучился с калибровкой, но вроде работало, хотя при резких поворотах глючило.
им же не удобно рулить, так и не приехал ниразу первым ни в одной гонке с акселометром
Всем спасибо за комментарии. В следующей реализации сделаю эмуляцию осей и настройку клавиш.
А нет ли софта который мышкой рулит на компе как контроллер от Wii?
Sign up to leave a comment.
Игровой контроллер для ПК на Android