Xbox 360震动隆隆声?

时间:2013-12-10 16:32:56

标签: python xbox360 vibrate

我已经设法找到一个脚本,启动xbox 360控制器隆隆(振动),但我不能让它关闭。有没有办法在5秒后设置它以使隆隆声停止?

import ctypes

# Define necessary structures
 class XINPUT_VIBRATION(ctypes.Structure):
    _fields_ = [("wLeftMotorSpeed", ctypes.c_ushort),
                ("wRightMotorSpeed", ctypes.c_ushort)]

xinput = ctypes.windll.xinput1_1  # 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

# Now we're ready to call it.  Set left motor to 100%, right motor to 50%
# for controller 0
vibration = XINPUT_VIBRATION(65535, 32768)
XInputSetState(0, ctypes.byref(vibration))

# 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, 0.5, 0.5,)

由于

1 个答案:

答案 0 :(得分:2)

看起来你已经拥有了这个脚本所需的一切。 set_vibration辅助函数有3个输入参数:

  • 控制器ID(在您的情况下为0)
  • 左侧电机振动从0(关闭)缩放到1.0(全开) - 使用0.5
  • 将其设置为50%
  • 右电机振动(也是0 - 1.0)

所以要将它设置为以50%的功率振动仅5秒,尝试类似:

import time
set_vibration(0, 0.5, 0.5)
time.sleep(5)
set_vibration(0, 0, 0)

授予此权限只需检查您的脚本,而不是经过测试