эмулятор джойстика

Discussion in 'Hardware and Software' started by Ivan_004, Oct 30, 2002.

  1. GKosh

    GKosh Member

    Joined:
    Nov 20, 2002
    Messages:
    7
    "Проблема в том, что мышь использует относительные координаты"

    То что нужно! Можно было бы сделать так:
    Мышь своё положение изменяет (приходят данные о смещениях по осям) передаём это как сообщения джойстика (то есть рулим :) ). Как только такие данные прекращаются (или 0 по оси приходит, я не знаю как там это организованно), забываем про старый центр по оси и создаём новый (центруем соответсвующий руль). То есть "отпускание" джойстика аналогично прекращению движения мыши. Тогда например вираж будет состоять из короткого движения мыши в сторону (настраиваем элероны, кладём плоскости вертикально земле поддержании) и с относительным постоянством поддерживаем скорости движения мыши вверх (удерживаем вертикальный руль), а выход из виража - простая остановка мыши.
    То есть по сути получаем управление аналогичное клавиатурному (когда прекращение "сессии" нажатой клавиши рули автоцентровались), но с мышиной спсобностью к диференцированной чувствительности (сообщение клавы - нажато/ненажато, сответсвенно имеем единую чувствительность и резкие смены курса, сообщения мыши - какие-то числа по оси, то есть величина угла изменения курса может варьроваться в зависимости от корости передвижения мышки, таким образом мы получаем и интуитивную простоту центровки как на клаве и мягкость управления джойстика, долго же перемещать мышь в одном направлении придётся разве что при выполнении очень уж затяжной бочки или виража, в моей практике этого не случалось) Дело в том, что при сложном и непредсказуемом курсе (например при приследовании самолёта) нужно иметь интуитивную возможность выравнить рули и быстро (не теряя драгоценного времени на поиск центра мыши) переложиться на новый курс.
     
  2. Ivan_004

    Ivan_004 Well-Known Member

    Joined:
    Jun 18, 2002
    Messages:
    613
    Я думаю что это проблему отключения мыши решить достаточно просто. Координаты от мыши надо учитывать в любом случае. А передавать их на оси джоя только в случае "вклюенной мыши". Таким образом, центр не будет сбиваться.
     
  3. -airty

    -airty Старый пофигист

    Joined:
    Feb 1, 2000
    Messages:
    14,120
    На самом деле проблема центрирования в большой степени надуманная (как мне видится с высоты моего изрядного опыта полетов на мышаке в птичках (без видимого курсора) :)). Первоначально да, испытываешь некоторые неудобства, а потом просто по поведению самолета прекрасно чувствуешь положение органов управления.
     
  4. Ivan_004

    Ivan_004 Well-Known Member

    Joined:
    Jun 18, 2002
    Messages:
    613
    Да, это все так. Но при одном условии. Что центр джойстика (мыши) соответствует приблизительно центру экрана. если же он после некоторых манипуляций съезжает на край, то это уже плохо. А при отключении мыши будет происходить именно это, если не продолжать обсчитывать координаты. Собственно это я и хочу сделать. Чтобы центровка не сбивалась
     
  5. GKosh

    GKosh Member

    Joined:
    Nov 20, 2002
    Messages:
    7
    "центр джойстика (мыши) соответствует приблизительно центру экрана. если же он после некоторых манипуляций съезжает на край, то это уже плохо."
    А почему плохо? Я могу сильно ошибаться, но мне кажется, что в этом случае получится как раз то, что мне было нужно. Если я прав и это несложно может быть сделаешь оба варианта и с сохранением центра мыши и без (когда мышь общитывается с новым центром каждый раз после того как её остановишь, то есть центр сохраняется пока мышка двигается).
     
  6. Ivan_004

    Ivan_004 Well-Known Member

    Joined:
    Jun 18, 2002
    Messages:
    613
    Можно было бы устанавливать новый центр, но только в случае если не сушествует граничных значений. А они всегда присутствуют, те которые задаешь при калибровке. Сместив центр к правой границе, свобода движения вправо будет ограничена расстоянием от нового центра до края области. Т.е. может получиться, что правый крен дать вообще не удасться.
     
  7. Ivan_004

    Ivan_004 Well-Known Member

    Joined:
    Jun 18, 2002
    Messages:
    613
    А вообще я не очень понимаю проблему. Т.е. зачем обязательно нужно менять центровку. Почему нельзя скажем при отпущенной кнопке просто возращать управление в центральное положение? (MAP_JX=MA[M1]MX) либо оставлять его в последнем положении до нового нажатия? (MAP_JX=MN[M1]MX)
     
  8. GKosh

    GKosh Member

    Joined:
    Nov 20, 2002
    Messages:
    7
    В первом случае получаю приблизительно следуюущее:
    перемещаю мышку с нажатой кнопкой влево (ложусь на крыло то есть), далее хочу стабилизировать своё положение и отпускаю кнопку (элероны центруются). Допустим потом мне потребуется выравнять самолёт, интуитивно снова зажимаю кнопку и двигаю мышку вправо - самолёт совершает резкий кувырок влево вокруг своей продольной оси. Дело в том, что я не отцентровал мышку, и в тот момент, когда нажал кнопку намереваясь повернуть элероны для правого манёвра, мышь имела уже какое-то (и довольно большое) отклонение влево от центра. Вообщем то чего я хотел избежать (обязанности центровать мышь) мне не только избежать не удалось, но наоборот, сделав центровку неочевидной лишь усугубил проблему и занял дефицитную кнопку (перемещая мышь без зажатой кнопки я лишаюсь возможности чувствовать положение своих рулей - результат вообще почти непредсказуем).
    Второй вариант, так же никак не решает поставленной задачи (избежать необходимости центровать мышь самому).
    Ясно, ну что ж, мне не повезло. В любом случае спасибо за внимание.
     
  9. Ivan_004

    Ivan_004 Well-Known Member

    Joined:
    Jun 18, 2002
    Messages:
    613
    В общем, проблема ясна. Подумаю, что тут можно сделать. Насчет повезло, не повезло :) Я все-таки из исходников драйвер скомпилил а не из коробки вынул :) так что все можно сделать - переделать если действительно нужно :flyer:
     
  10. --AAA--

    --AAA-- Well-Known Member

    Joined:
    Nov 17, 2002
    Messages:
    94
    Location:
    В пальто...
    2 Ivan_004
    Так когдаже ждать инстоляшку???
     
  11. -Shaman-

    -Shaman- Member

    Joined:
    Dec 2, 2002
    Messages:
    9
    Location:
    RU
    Хде?

    Как там с разработкой дела? Долголь исчо ждать? :zzz: Уж больно в Иле колесико на газ повесить хоцца... :D
     
  12. Ivan_004

    Ivan_004 Well-Known Member

    Joined:
    Jun 18, 2002
    Messages:
    613
    Еще немного :) Сейчас работаю надо поддержкой winXP и разных мышей. Следующая версия будет поддерживать:

    - WinXP
    - разные мыши
    - отключение-включение нажатием кнопки
    - инстал-package
     
  13. -Shaman-

    -Shaman- Member

    Joined:
    Dec 2, 2002
    Messages:
    9
    Location:
    RU
    Ждеееем! :super:
     
  14. Slonishe

    Slonishe New Member

    Joined:
    Dec 10, 2002
    Messages:
    1
    А у меня все работает!!!

    :@prayer: 2 Ivan_004 :)

    У меня все работает: WinXP, беспроводная крыса - без проблем...

    P.S. ...я правда не сторонник замены джойстика мышью, но когда приспичет, то...
     
    Last edited: Dec 10, 2002
  15. Ivan_004

    Ivan_004 Well-Known Member

    Joined:
    Jun 18, 2002
    Messages:
    613
    Я заканчиваю новый патч. Протестировал под XP - все нормально вроде, единственное, при добавлении девайса (в gaming options) сначала XP пытается ему поставить стандартный драйвер гейм-порта (hidgame), видимо потому что мой драйв не подписан. Приходится руками апдейтить драйвер. Под 2К сразу находит нужный драйвер. Мышь теперь тоже работает (точнее устанавливается) по-другому. Просто добавляется фильтр для класс-девайсов. Т.е. скорее всего должно работать с разными тапами мыши (в том числе USB) это надо еще тестировать.

    Работы много основной, так что мало времени :( Но уже скоро закончу. Перед установкой надо старый драйвер замочить, и драйвер мыши проапдейтить стандартным драйвером.
     
  16. -Shaman-

    -Shaman- Member

    Joined:
    Dec 2, 2002
    Messages:
    9
    Location:
    RU
    А колесико, колесико!! :shuffle:
     
    1 person likes this.
  17. Ivan_004

    Ivan_004 Well-Known Member

    Joined:
    Jun 18, 2002
    Messages:
    613
    А что колесико? оно и со старой версией работало насколько я знаю :confused:
     
  18. -Shaman-

    -Shaman- Member

    Joined:
    Dec 2, 2002
    Messages:
    9
    Location:
    RU
    что, серьезно!!!!??
    блин! все, качаююю!!! :super:
     
  19. -Shaman-

    -Shaman- Member

    Joined:
    Dec 2, 2002
    Messages:
    9
    Location:
    RU
    Да... а где взять то?
     
  20. Ivan_004

    Ivan_004 Well-Known Member

    Joined:
    Jun 18, 2002
    Messages:
    613
    см. выше по форуму :)