【问题标题】:Joystick in win32 application, winmmwin32应用程序中的操纵杆,winmm
【发布时间】:2011-05-01 15:34:55
【问题描述】:

我应该如何理解这个文档:http://msdn.microsoft.com/en-us/library/dd757116%28v=VS.85%29.aspx

我只能使用 4 个按钮和 1 个模拟摇杆吗?我有一个带有 12 个按钮、2 个模拟操纵杆和一个“转向十字”(POV 帽子?)的游戏手柄。我可以在 winmm 中使用多少个这些按钮?

【问题讨论】:

    标签: c++ winapi input joystick winmm


    【解决方案1】:

    如果您需要比 winmm 支持的轴更多的轴,请考虑使用 DirectInput。

    但是,您链接的页面明确指出 winmm 支持多达 32 个按钮和 6 个轴(3 个 2-D 模拟摇杆)。看起来您的游戏手柄将在轴上发挥最大作用,使用全部 6 个按钮,并且还使用 32 个按钮中的 12 个。

    【讨论】:

    • 我认为这是指“扩展功能”,我不知道它是什么。因为 JOY_BUTTON5CHG 等没有任何定义,而 MM_JOY1MOVE 并没有以我能看到的任何方式区分摇杆。
    • @Moberg:“扩展功能”由 API 的“Ex”风格提供。 joyGetPosExjoyGetPos 的扩展版本。 JOYINFOEXJOYINFO 的扩展版本。
    • 我可以捕获这些扩展按钮还是需要查询它们?查询意味着定期调用 joyGetPos(Ex) 以便更新 JOYINFOEX 结构以查看游戏手柄的状态?
    • 我想像处理所有键盘和鼠标输入一样处理消息循环中的操纵杆输入。
    • @Moberg:我认为您需要轮询或切换到 DirectInput。无论如何,大多数使用扩展操纵杆的应用程序都有一个绘制循环(也称为游戏循环),并且这些轮询很方便。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多