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

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

Страницы: 1 2 3 4 5 Следующая »
#0
0:51, 8 сен. 2019

Допустим для игры в жанре платформера нужно сделать поддержку джойстика, какой он будет вопрос.

Имеем:

- DirectInput
- XInputGetState()
- joyGetPos()
- Что-то ещё...

В чём плюсы и минусы каждого способа?


#1
(Правка: 4:21) 1:14, 8 сен. 2019

Хаус
DirectInput считается Deprecated ещё с момента выхода Windows Vista, т.е. уже больше 10 лет, теперь Майкрософт рекомендует использовать Raw Input для клаво-мыши и XInput для гейпадов XBox. Обленившиеся программисты визжат, кусаются, но продолжают использовать DeprecatedInput. XInput считается самым простым и правильным способом опроса гейпадов XBox. Но это монополия Майкрософт, поэтому я пошёл более сложным путём и всё управление посадил на Raw Input и теперь могу юзать ещё и гейпады DualShock, которые очень популярны среди пользователей ПК, имеющих ещё и Playstation, а таких немало. Ну а про joystickapi (joyGetPos) даже не слышал, видимо не самый популярный способ.

#2
1:15, 8 сен. 2019

SDL

#3
(Правка: 4:18) 1:20, 8 сен. 2019

Dimich
> SDL
Если человек пишет движок на API, фреймворк для опроса устройств ввода ему в [цензура] не упёрся ))) а что там, кстати, сам SDL-то использует для опроса управления = не устаревший ли DInput???

Изображение
#4
11:54, 8 сен. 2019

DirectInput геймпады уже и в магазинах не продаются, поэтому выбор очевиден (но поддержку старых геймпадов было сделать просто актом вежливости).  Если говорить про всякие рули/штурвалы - там ещё и не такое дерьмо мамонта может быть, поэтому нужно смотреть конкретные девайсы (не дешёвые, кстати) и делать их поддержку, иначе какашками закидают.

#5
(Правка: 14:46) 12:42, 8 сен. 2019

0iStalker
> DirectInput геймпады уже и в магазинах не продаются, поэтому выбор очевиден
А какие гейпады? Я на XBox 360 играю в старые эмуляторы, там однозначно DirectInput :)
Со временем для тестирования движка хочу приобрести XBox One Elite и DualShock 4, заодно и погоняю их на этих эмулях...

К слову скажу = я не знаю, что используют для опроса устройств ввода в Скайриме, но управление периодически отваливается, раньше даже не убирался Windows-курсор и постоянно гонял по экрану при движениях мышью. Складывается такое впечатление, что даже такие шедевры делают какие-то дилетанты...

#6
16:27, 8 сен. 2019

Daniil Petrov
> XBox
Daniil Petrov
> DirectInput

Ясно!  XInput же

#7
16:53, 8 сен. 2019

0iStalker
> XInput же
Не поленился, глянул зависимости, у одного DInput, у других ничего, но никакого XInput!
Тем более, что DInput гейпады никогда и не поддерживали, у них всегда был один и тот же интерфейс, который уже юзали DInput и прочие API.

#8
17:28, 8 сен. 2019

Dimich
> SDL
+1

Особенно, если смотришь дальше одной платформы.

#9
17:37, 8 сен. 2019

Dimich
> SDL

Там над каким API обёртка?

#10
17:47, 8 сен. 2019

Хаус
> Там над каким API обёртка?
Пробежался простым поиском функций по файлам, получилось следующее: Raw Input там отсутствует, присутствует XInput и непонятно на счёт DInput = поиск по файлам вроде ловит наличие «dinput», а поиск в самих файлах ничего не даёт, в общем как-то так...

#11
(Правка: 1:46) 1:43, 9 сен. 2019

Хаус
Скачай DirectX SDK June 2010, там есть пример использования XInput, если не заморачиваться на вибрации, то там всего несколько строчек кода, если с вибрацией, то немного больше. Если у тебя прямые руки, то это более правильный способ, нежели прикручивать фреймворк, если ты не используешь его для всех остальных систем движка, которые он предоставляет.

#12
8:23, 9 сен. 2019

Хаус
Raw input.

#13
9:09, 9 сен. 2019

nes
> Raw input.

Аргументы?

Daniil Petrov
> XInput

Я так понимаю он заточен под геймпады от XBox, для ДуалШока он годится, а для ноунеймов?

#14
(Правка: 10:13) 10:10, 9 сен. 2019

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

пример использования библиотеки

продолжение...

Вся болтовня про Depricated о DirectInput или XInput - просто болтовня.

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