2

我一直在尝试从 USB 操纵杆读取数据(x/y 轴、按下的按钮等),并且听说过 DirectInput。一直在寻找一个不错的例子或演练,但收效甚微。如果有人可以分享一个简单的教程,或者引导我到正确的地方,我会欠你的。谢谢

编辑:试图在 Windows 平台上实现这个目标

4

3 回答 3

4

DirectX SDK、源代码和编译的二进制文件中有一些 DirectInput 示例。包括Joystick样品。旧版本的 SDK(查找“DirectX 9.0 SDK”,大约在 2004-2005 年左右)有更多的样本,多达十几个!

操纵杆样本


说明 Joystick 示例程序获取并显示操纵杆数据。

路径来源:(SDK 根目录)\Samples\C++\DirectInput\Joystick

可执行文件:(SDK 根目录)\Samples\C++\DirectInput\Bin\Joystick.exe

用户指南 观察当您移动和转动摇杆、旋转油门轮以及以各种组合方式按下按钮时显示的数据如何变化。

编程注意事项 应用程序轮询操纵杆以获取即时数据,以响应对话过程中设置的计时器。

于 2012-03-16T18:39:34.433 回答
0

可能这些可能会对您有所帮助:

  1. 直接输入设备
  2. Coding4Fun 操纵杆

实际上Coding4Fun有很多有趣的东西。它开始于 Win7 发布时。

于 2012-03-16T18:39:30.273 回答
0

walbourn/directx-sdk-samples在github上使用过,效果很好。

我必须.pro按如下方式配置文件才能在 Qt Creator 上运行它:

TEMPLATE = app
CONFIG += c++14
CONFIG -= app_bundle
CONFIG -= qt

SOURCES += main.cpp
HEADERS += resource.h
DISTFILES += directx.ico joystick.rc
RC_FILE = joystick.rc

DEFINES -= UNICODE
#DEFINES += _MBCS

win32: QMAKE_CXXFLAGS_RELEASE -= -Zc:strictStrings
win32: QMAKE_CFLAGS_RELEASE -= -Zc:strictStrings
win32: QMAKE_CXXFLAGS_DEBUG -= -Zc:strictStrings
win32: QMAKE_CFLAGS_DEBUG -= -Zc:strictStrings
win32: QMAKE_CFLAGS -= -Zc:strictStrings
win32: QMAKE_CXXFLAGS -= -Zc:strictStrings

LIBS += -L"C:/Program Files (x86)/Windows Kits/10/Lib/10.0.10240.0/um/x64"
LIBS += -lshell32 -luser32 -ldxguid -lcomctl32 -lole32 -loleaut32 -ldinput8
于 2016-12-22T07:53:09.340 回答