Найти - Пользователи
Полная версия: Прошу помощи!
Начало » Центр помощи » Прошу помощи!
1
kharlashkin
Доброе время суток всем форумчанам!

Итак, задался целью подключить вибрацию геймпада от Xbox 360 в одну известную игру, которая активно использует python скрипты. В игре используется функционал вибрации для своего специально спроектированного устройства. Де-компилировал код, отвечающий за вибрацию. Нашел соответствующий код, позволяющий передавать вибрацию в Xinput-совместимый геймпад.
Так как я не программист и никогда им не был, написание плагина на основе этих данных для меня большая проблема - прошу помощи у специалистов. Разумное вознаграждение гарантирую.
kharlashkin
Ссылка на код, позволяющий передавать вибрацию в геймпад.
Во вложении папка скриптов из игры.
kharlashkin
Читаю Лутца “Изучаем Python”, появилось понимание кода, запустил код для геймпада.
import ctypes
# Define necessary structures
class XINPUT_VIBRATION(ctypes.Structure):
    _fields_ = [("vibration.wLeftMotorSpeed", ctypes.c_ushort),
                ("vibration.wRightMotorSpeed", ctypes.c_ushort)]
xinput = ctypes.windll.xinput1_3  # Load Xinput.dll
# Set up function argument types and return type
XInputSetState = xinput.XInputSetState
XInputSetState.argtypes = [ctypes.c_uint, ctypes.POINTER(XINPUT_VIBRATION)]
XInputSetState.restype = ctypes.c_uint
# You can also create a helper function like this:
def set_vibration(controller, left_motor, right_motor):
    vibration = XINPUT_VIBRATION(int(left_motor * 65535), int(right_motor * 65535))
    XInputSetState(controller, ctypes.byref(vibration))
# ... and use it like so
set_vibration(0, 1.0, 1.0)

Может кто-то подскажет как задавать время работы вибрации. в книге пока не дошел до этого места.
orondil
import time
set_vibration(0, 0.5, 0.5)
time.sleep(5)
set_vibration(0, 0, 0)
Подробности тут:
http://stackoverflow.com/questions/20499946/xbox-360-vibrate-rumble
kharlashkin
orondil
Это я видел, может есть более изящное решение?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB