Песочница →
Подключение Wii RockBand Pro Drums к PC с определением ударов по тарелкам
Для подключения нам понадобится:
- Сам джойстик (установка)
- JoyToKey
- Какой-нибудь язык программирования (я выбрал Delphi)
- Программа для тестирования (у меня была возможность проверить на Kontakt5)
Введение
Кто знаком с программой JoyToKey, тот наверно задастся вопросом: «Зачем же здесь язык программирования?». Дело в том, что джойстик Wii ограничен в количестве кнопок при подаче сигнала к приставке, поэтому создатели не много схитрили. При ударе по тарелкам, они сначала посылают нажатие кнопки соответствующего цвета, затем посылают дополнительную кнопку (Button12 в JoyToKey). Изза этого способа возникают как минимум две проблемы:
- В результате сигнал получаемый при ударе по тарелке НЕ ЯВЛЯЕТСЯ комбинацией нажатия двух кнопок.
- Бывают моменты когда дополнительный удар по другому барабану посылает сигнал в интервале между посылом комбинации от удара по тарелке, поэтому выделить правильные сигналы — практически нереально.
Обозначим кнопки/цвета барабанов
Кнопка | JoyToKey | Сокращение |
---|---|---|
Красный | Button3 | R |
Желтый | Button4 | Y |
Синий | Button1 | B |
Зеленый | Button2 | G |
Бочка (педаль) | Button5 | T |
Тарелка | Button12 | C |
Отсюда получаем, что YC, BC, GC — желтая тарелка, синяя и зеленая соответственно.
Настройка JoyToKey
В данной программе я повесил кнопки на NumPad:
Button1..Button5 — Num1..Num5
Button12 — Num9
Программирование
Задача программы следующая:
- Перехватываем нажатие клавиши.
- Формируем стек нажатий перехваченных клавиш (тем самым сможем выделить удар по тарелкам).
- По интервалу времени обрабатываем наш стек в виде строки.
- Посылаем нажатие клавиши в активное окно согласно коду кнопок.
- Очищаем стек
Программу с исходниками можно скачать тут. Чтобы описать
как она работает я назову всего две функции: PostKeyEx32 (эмуляция нажатия клавиши), RegisterHotKey (Перехват нажатий).
Итог
В заключении хочу показать вам не большое видео с результатом работы всей этой связки. В самой программе левая колонка это список определенных ударов, справа отработанные стэки.
20.10.2011 09:46+0400