一、测试环境
1、测试环境:Windows 10 操作系统。
2、测试工具:DirectInput 手柄测试工具和 XInput 手柄测试工具。
3、测试内容:测试手柄的各个按键、摇杆、触摸板等是否正常工作。
二、测试流程
1、连接手柄:将手柄通过 USB 接口连接到计算机上,并确保系统已经正确识别了手柄设备。
HRESULT hr = InitDirectInput(hInstance, hWnd);
if (SUCCEEDED(hr))
{
if (SUCCEEDED(InitXInput()))
{
while (TRUE)
{
if (SUCCEEDED(UpdateDirectInputState()))
{
UpdateXInputState();
// 手柄按键执行相应操作
}
else
{
// 处理手柄断开连接的情况
}
}
}
}
2、启动测试工具:打开 DirectInput 手柄测试工具或 XInput 手柄测试工具。
3、进行测试:对手柄的各个按键、摇杆、触摸板等进行测试,记录测试结果。
4、保存测试结果:将测试结果保存到文本文件中,以备后续分析和处理。
三、测试结果
1、各个按键是否正常工作:通过测试结果发现,手柄的各个按键都能够正常工作。
// DirectInput 手柄按键测试代码示例
if (g_DIState.rgbButtons[0] && !g_OldDIState.rgbButtons[0])
{
// 按下了手柄上的第一个按键
}
else if (!g_DIState.rgbButtons[0] && g_OldDIState.rgbButtons[0])
{
// 松开了手柄上的第一个按键
}
// XInput 手柄按键测试代码示例
if (g_XInputState.Gamepad.wButtons & XINPUT_GAMEPAD_START)
{
// 按下了手柄上的 START 按键
}
else if (!(g_XInputState.Gamepad.wButtons & XINPUT_GAMEPAD_START))
{
// 松开了手柄上的 START 按键
}
2、摇杆是否正常工作:通过测试结果发现,手柄的摇杆都能够正常工作。
// DirectInput 手柄摇杆测试代码示例
if ((g_DIState.lX > 5000) && !(g_OldDIState.lX > 5000))
{
// 手柄左摇杆向右移动
}
else if ((g_DIState.lX < -5000) && !(g_OldDIState.lX < -5000))
{
// 手柄左摇杆向左移动
}
// XInput 手柄摇杆测试代码示例
if (g_XInputState.Gamepad.sThumbLX > XINPUT_GAMEPAD_LEFT_THUMB_DEADZONE)
{
// 手柄左摇杆向右移动
}
else if (g_XInputState.Gamepad.sThumbLX < -XINPUT_GAMEPAD_LEFT_THUMB_DEADZONE)
{
// 手柄左摇杆向左移动
}
3、触摸板是否正常工作:通过测试结果发现,手柄的触摸板都能够正常工作。
// DirectInput 手柄触摸板测试代码示例
if ((g_DIState.rgdwPOV[0] == 9000) && !(g_OldDIState.rgdwPOV[0] == 9000))
{
// 按下了手柄上的触摸板
}
else if ((g_DIState.rgdwPOV[0] != 9000) && (g_OldDIState.rgdwPOV[0] == 9000))
{
// 松开了手柄上的触摸板
}
// XInput 手柄触摸板测试代码示例
if (g_XInputState.Gamepad.wButtons & XINPUT_GAMEPAD_LEFT_THUMB)
{
// 按下了手柄上的触摸板
}
else if (!(g_XInputState.Gamepad.wButtons & XINPUT_GAMEPAD_LEFT_THUMB))
{
// 松开了手柄上的触摸板
}
四、测试总结
通过测试,我们可以得出结论:手柄测试工具能够对手柄的各个按键、摇杆、触摸板等进行全面的测试,确保手柄的正常使用。
