SFML检测假操纵杆

时间:2019-07-13 15:48:46

标签: c++ sfml joystick

我没有将任何游戏杆连接到我的笔记本电脑,但是SFML可以像以前一样进行检测。 我的主循环:

  render_window.clear(sf::Color::White);

            for (int i=0; i<8; i++)
                std::cout << std::boolalpha  << i << " : " 
                << sf::Joystick::isConnected(i) << std::endl;

  render_window.display();

和输出的控制台是

Failed to set DirectInput device axis mode: 1
0 : true
1 : true
2 : true
3 : true
4 : true
5 : false
6 : false
7 : false
Failed to set DirectInput device axis mode: 1
0 : true
1 : true
2 : true
3 : true
4 : true
5 : false
6 : false
7 : false

那些操纵杆(1、2、3、4)来自哪里,这是我的笔记本电脑还是...出问题了?

2 个答案:

答案 0 :(得分:1)

我终于发现是因为 vjoy 驱动程序

  

vJoy是一种设备驱动程序,可桥接非操纵杆的任何设备与需要操纵杆的应用程序之间的差距。

卸载驱动程序,不再有操纵杆

答案 1 :(得分:0)

如果您的系统中安装了一些虚拟游戏杆仍然有问题您有两种解决方案来解决这个问题:

  1. 从键盘(不显示名称,您必须显示此部分中每个设备的弹出窗口)和 HID 设备卸载 Monac HID

  2. 从 2020 年起将 SFML 版本更改为更新的版本