一、测试环境
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)) { // 松开了手柄上的触摸板 }
四、测试总结
通过测试,我们可以得出结论:手柄测试工具能够对手柄的各个按键、摇杆、触摸板等进行全面的测试,确保手柄的正常使用。