Войти
ПрограммированиеФорумОбщее

Какое API выбрать для джойстиков? (2 стр)

Страницы: 1 2 3 Следующая »
#15
17:30, 9 сен. 2019

Хаус
Самый нативный натив для уиндоуз, по сути прямой доступ к драйверу жостика.


#16
20:39, 9 сен. 2019

bykabak
> XInput работает с любым устройством от слова вообще: Gamepad , Joystick ,
> многокнопочная мышь , руль , и т.д. для которого установлен драйвер в Windows.
> т.е. у вас не будет проблем с любой кнопкой или аналоговым регулятором на
> устройстве.
так нет же, он работает только x360 джойстиком

в sdk 2010 есть тестовые программы,мой древний thrustmaster, xinput программа не видит, dinput - видет.

так что я не очень понял вашу мысль.

#17
(Правка: 22:23) 22:22, 9 сен. 2019

Юзаю SDL.

Прекрасно работают как DInput джойскик так и XInput геймпад.
Только Дуалшок не проверял, в виду его ненадобности.

#18
23:03, 9 сен. 2019

nes
> Самый нативный натив для уиндоуз, по сути прямой доступ к драйверу жостика.

Вибрация есть?

#19
(Правка: 1:50) 1:44, 10 сен. 2019

nes
> Самый нативный натив для уиндоуз, по сути прямой доступ к драйверу жостика.
Про что я и говорю = используешь Raw Input, который не требует никаких заголовочных файлов и библиотек, и библиотеку HID для гейпадов, и можешь юзать даже DualShock!

Хаус
> Вибрация есть?
Вот здесь пока основная загвоздка :) в XInput ты можешь использовать вибрацию, как два пальца обоссать, а здесь уже сложнее. Для XBox я пока не искал решения, а для DualShock, например, это дело работает вот так. А вот пример использования Raw Input для опроса клавиатуры и мыши, но тут сразу нужно быть готовым к тому, что в отличие от DeprecatedInput здесь не ты вызываешь опрос устройств ввода, а вызов происходит уже из WndProc().

#20
(Правка: 4:54) 4:53, 10 сен. 2019

Хаус
По сути для клаво-мыши и, если нужен DualShock, ты можешь использовать Raw Input, а для XBox = XInput и не париться!

#21
11:01, 10 сен. 2019

Хаус
Вибрацию можно через запись в файл.

Но имхо это вибрация только мешает в игорях.

Daniil Petrov
>Про что я и говорю = используешь Raw Input, который не требует никаких заголовочных файлов и библиотек, и библиотеку HID для гейпадов, и можешь юзать даже DualShock!
+1

#22
11:02, 10 сен. 2019

Daniil Petrov
>По сути для клаво-мыши и, если нужен DualShock, ты можешь использовать Raw Input, а для XBox = XInput и не париться!
С клавой плюс еще в том, что можно заюзать клавиши windows для игровых нужд (т.е. окно не будет сворачиваться по нажатию на них).

#23
12:17, 10 сен. 2019

nes
> С клавой плюс еще в том, что можно заюзать клавиши windows для игровых нужд (т.е. окно не будет сворачиваться по нажатию на них).
Иногда из-за этого начинаешь париться, так как не вызвать клавишей меню Пуск даже в оконном режиме, когда нужно :)

#24
(Правка: 14:41) 12:23, 10 сен. 2019

forwhile,

В любом случае, если Windows 7 - 10 видит ваш древний thrustmaster - драйверы установлены, то dinput будет работать с устройством.

как подружить старый joystick и новые игры

#25
14:57, 10 сен. 2019

Daniil Petrov
Alt+Tab хватит всем )

#26
14:43, 15 сен. 2019

nes
> Вибрацию можно через запись в файл.

Покажи пример

#27
(Правка: 15:11) 15:10, 15 сен. 2019

Хаус
> Покажи пример
Raw Input вибрация для DualShock:

const char *path = /* from GetRawInputDeviceInfo(RIDI_DEVICENAME) */;
HANDLE hid_device = CreateFile(path, GENERIC_READ | GENERIC_WRITE,
                               FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
                               OPEN_EXISTING, 0, NULL);
assert(hid_device != INVALID_HANDLE_VALUE);
uint8_t buf[32];
memset(buf, 0, sizeof(buf));
buf[0] = 0x05;
buf[1] = 0xFF;
buf[4] = right_motor_strength;  // 0-255
buf[5] = left_motor_strength;   // 0-255
buf[6] = led_red_level;         // 0-255
buf[7] = led_green_level;       // 0-255
buf[8] = led_blue_level;        // 0-255
DWORD bytes_written;
assert(WriteFile(hid_device, buf, sizeof(buf), &bytes_written, NULL));
assert(bytes_written == 32);
Здесь пример опроса гейпадов для Raw Input посредством HID.
#28
15:19, 15 сен. 2019

Daniil Petrov

Чем RAW лучше XInput?

#29
15:28, 15 сен. 2019

Хаус
> Чем RAW лучше XInput?
А вот знаешь, попробуй XInput, для гейпадов XBox это однозначно лучшая библиотека, а вот если её для чего-то другого тебе не хватит, попробуешь уже Raw Input :)
Ты столько времени сидишь, сиськи мнёшь, хотя за это время уже можно было и то, и другое опробовать )))

Страницы: 1 2 3 Следующая »
ПрограммированиеФорумОбщее