macos - 如何在 Mac 上使用 SDL 的操纵杆?

标签 macos sdl osx-mavericks joystick

来源非常基本:

#include <SDL.h>

int main(int argc, char *argv[])
{
  if (SDL_Init(SDL_INIT_JOYSTICK))
  {
    return 1;
  }
  int num_joy, i;
  num_joy=SDL_NumJoysticks();
  printf("%d joysticks found\n", num_joy);
  for(i=0;i<num_joy;i++)
      printf("%s\n", SDL_JoystickName(i));

  SDL_Quit();
  return 0;
}

这会输出 Ubuntu 12.04 上连接的操纵杆的名称,但不会在我的 Mavericks Mac(使用 Homebrew 安装的 SDL 1.2.15)上输出。作为 root 运行它没有什么区别。此时我假设这只是 SDL 中的一个错误,但我很乐意看到我在这里做错了什么。

来源:https://github.com/mikepurvis/joystick_sdl

最佳答案

您需要查看以下 SDL2 函数调用:

SDL_GameControllerAddMappingsFromFile

这将读取 SDL2 开箱即用不支持的游戏 handle 配置。

要获取社区维护的 Controller 列表,请查看: gamecontrollerdb.txt

要为您可能随处可见的不起眼的游戏 handle 创建您自己的映射,您需要运行 SDL/test/controllermap.c 示例。 为了在 OSX 上构建这个示例,我使用了:

$ gcc controllermap.c -lSDL2 -I ../include -o controllermap -L ~/lib/ -framework AudioUnit -framework Carbon -framework ForceFeedback -framework CoreAudio -framework CoreVideo -framework IOKit -framework Cocoa

关于macos - 如何在 Mac 上使用 SDL 的操纵杆?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27050663/

相关文章:

macos - uWSGI 无法加载 libssl.1.0.0.dylib

c - 你如何在SDL2中设置光标位置?

c++ - SDL 2 无法打开 Controller ,但可以识别操纵杆

node.js - Node -opencv/小牛 : dyld: Symbol not found

xcode - 为什么安装 Xcode 命令行工具会改变 'gcc --version' 报告的内容

c - 如何使可执行文件在 OSX Mavericks 上运行

java - -bash : syntax error near unexpected token `('

macos - 总是 -bash : gomobile: command not found

objective-c - 如何在应用程序处于焦点的情况下捕获键盘/鼠标事件?

c++ - 使用 C++ 入口点让 SDL 在 OSX 上工作