这是我的代码
#include <SDL.h>
#include <iostream>
int main(int argc,char **argv)
{
std::cout<<SDL_NumHaptics()<<std::endl<<SDL_NumJoysticks()<<std::endl;
return 0;
}
当我运行它时,它说0个操纵杆和0个触觉设备,这发生在Linux和Windows上。在linux上我安装了xboxdrv,它检测到控制器,在Windows上我也安装了必要的驱动程序。 SFML确实将控制器检测为linux上的操纵杆,但是,我更倾向于使用SDL,因为它支持触觉设备和openGL配置文件。
答案 0 :(得分:3)
您忘记初始化SDL。例如:
SDL_Init(SDL_INIT_JOYSTICK | SDL_INIT_HAPTIC);
或者,如果你正在使用SDL(图形,音频等),那么:
SDL_Init(SDL_INIT_EVERYTHING);