???
Математика на уровне МГУ

Показано с 1 по 9 из 9

Тема: Вопрос по программированию.

  1. #1
    Механик
    Регистрация
    15.05.2003
    Адрес
    Sankt-Peterburg
    Сообщений
    330

    Вопрос по программированию.

    Надо - при нажатии джойстика в игре нажималась кнопка, а кнопка джойстика не нажималась.

    Интересует пример программки/куска исходника.
    Если знаете, где можно посмотреть по этой теме. А то я в виндовом api как хорёк в овощьном ларьке.

    2 Модераторы. Если не тот топик перенесите плз.
    Рождённый ползать летит не долго.

  2. #2
    Старший Офицер Форума Аватар для FilippOk
    Регистрация
    17.04.2002
    Адрес
    Санкт-Петербург
    Возраст
    47
    Сообщений
    10,448
    Хороший вопрос.
    "У меня под капотом стук. Объясните, пожалуйста, отчего он происходит."
    Что за джойстик-то?
    Русские варвары врывались в кишлаки, аулы, стойбища, оставляя после себя города, библиотеки, университеты и театры.

    Правила - тут.

  3. #3
    Начинающий ювелир
    Регистрация
    15.06.2001
    Адрес
    Москва
    Сообщений
    541

    Re: Вопрос по программированию.

    Originally posted by MikeR
    Интересует пример программки/куска исходника.
    Посмотри примеры DirectX SDK/DDK.

  4. #4
    Механик
    Регистрация
    15.05.2003
    Адрес
    Sankt-Peterburg
    Сообщений
    330
    FilippOk
    HID любой от мягкотелых. Имхо при работе через DX не важно какой. Если через DX не делаеться и надо ваять драйвер, сорри вопрос отменяеться.

    2 Saney
    DDK смотрел - смерть всему живому, если действительно писать как там, прощё под nix wine настроить.
    SDK - к сожалению не понял как "отменить" нажатие кнопки.
    Рождённый ползать летит не долго.

  5. #5
    Originally posted by MikeR
    Надо - при нажатии джойстика в игре нажималась кнопка, а кнопка джойстика не нажималась.
    А без DX-SDK не получится? Я примерно так делал в одной проге (писАл на билдере):

    вызываешь при старте или в нужном месте:
    joySetCapture(Handle,JOYSTICKID1,NULL,FALSE); // Hahdle - HWND окна

    перехватываешь сообщение типа MM_JOYBUTTONDOWN:
    void TWelMonForm::JoyButtonPress(TMessage& message)
    {
    // MM_JOY1BUTTONDOWN message.
    if(!JoyCapture)
    {
    SendMessage(куда-наверно_своему_окну_(можно_любому),что_за_мессаджь,его_параметры1,его_параметры2); // Здесь будешь посылать клавишу
    // или PostMessage(...);
    //...
    JoyCapture=1; // Don't capture more than 1 frame
    }

    Хорошо бы еще освободить, а то "залипнет":
    void TWelMonForm::JoyButtonRelease(TMessage& message)
    {
    // MM_JOY1BUTTONUP message.
    JoyCapture=0; // Release capture block.
    }
    А вообще-то, может и не надо освобождать - не помню, там прога была узко специфичная.

    В билдере внутри класса окна надо еще вставить такую штуку с точностью до... т.е. без всяких ";" (типа таблицы отклика, кажется, раньше так это называлось)
    BEGIN_MESSAGE_MAP
    MESSAGE_HANDLER(MM_JOY1BUTTONDOWN,TMessage,JoyButtonPress)
    MESSAGE_HANDLER(MM_JOY1BUTTONUP,TMessage,JoyButtonRelease)
    END_MESSAGE_MAP(TControl)

    Удачи!
    Крайний раз редактировалось Glass Eagle; 03.07.2003 в 12:43.
    Моя жизнь выпускает шасси и закрылки
    и идёт, не спеша, на последний вираж...

    http://foto-oblakov.narod.ru

  6. #6
    Офицер Форума
    Регистрация
    28.01.2002
    Адрес
    РФ, Москва и иногда Курск
    Возраст
    48
    Сообщений
    3,606
    ух ё...
    Вера наших соотечественников в то, что Россия - одна из худших стран мира по своей абсурдности уступает только их же вере в абсолютную личную непричастность к сему положению.

  7. #7
    BTNC
    Гость
    HID дривер для дефолтного джоя нужно править\писать на предмет незалипания. боюсь что на более верхнем уровне этого не cделаешь.

  8. #8
    Механик
    Регистрация
    15.05.2003
    Адрес
    Sankt-Peterburg
    Сообщений
    330
    2 Glass Eagle
    Идея я так понял такова - перехватываем мессагу, и потом делаем что хотим. Вопрос такой: эта мессага только до нашего окна дойдёт или до всех где за джойстиком следят ?
    т.е. "нажмёться" кнопка джоя в игре или нет ?

    2 BTNC
    Складываеться впечатление, что так оно и есть =(.
    Рождённый ползать летит не долго.

  9. #9
    Originally posted by MikeR
    Вопрос такой: эта мессага только до нашего окна дойдёт или до всех где за джойстиком следят ?
    т.е. "нажмёться" кнопка джоя в игре или нет ?...
    Честно говоря, шут его знает. В двух разных одновременно запущенных приложениях я не проверял. Хотя именно так и можно проверить - состряпать две маленькие проги, по-разному реагирующие на нажатие джоя - одна должна работать активной, вторая - в фоновом режиме - и проверить, среагирует только активная или обе. Вообще-то в WinAPI есть функции, которые должны/не должны ретранслировать сообщение дальше, но меня тоже всегда ломало писать для винды в её говенном классическом стиле.
    Моя жизнь выпускает шасси и закрылки
    и идёт, не спеша, на последний вираж...

    http://foto-oblakov.narod.ru

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •