作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在用 C 语言编写一个利用 SDL 2.0 的小程序,当我无法让 SDL_NumJoysticks()
报告当时插入的操纵杆数量时遇到了问题。函数调用。我相信它正在报告 SDL 初始化函数之一期间连接的操纵杆数量(我猜是“SDL_Init()”,但我没有证据),然后在程序的其余部分中不断向您提供该数字。这是我一直在使用的一个简短的测试程序:
#include <stdio.h>
#include <SDL2/SDL.h>
int main() {
SDL_Event event;
SDL_Window *window;
short joysticks = 0;
if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_JOYSTICK) < 0) {
fprintf(stderr, "SDL_Init error: %s\n", SDL_GetError());
return 1;
}
window = SDL_CreateWindow("Test window", 0, 0, 800, 600, SDL_WINDOW_SHOWN);
if (window == NULL) {
fprintf(stderr, "SDL_CreateWindow error: %s\n", SDL_GetError());
return 1;
}
printf("%s\n", SDL_GetError());
while (1) {
while (SDL_PollEvent(&event)) {
if (event.type == SDL_QUIT) {
printf("%s\n", SDL_GetError());
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
} else if (event.type == SDL_JOYDEVICEADDED) {
printf("Joystick added!\n");
} else if (event.type == SDL_JOYDEVICEREMOVED) {
printf("Joystick removed!\n");
}
}
if (SDL_NumJoysticks() > joysticks) {
printf("Joystick inserted.\n");
joysticks++;
} else if (SDL_NumJoysticks() < joysticks && SDL_NumJoysticks() >= 0) {
printf("Joystick removed.\n");
joysticks--;
} else if (SDL_NumJoysticks() < 0) {
printf("Something went wrong!\n");
SDL_DestroyWindow(window);
SDL_Quit();
return 1;
}
}
return 0;
}
程序启动时会准确报告插入的操纵杆数量,但此后绝对不执行任何操作。
official SDL docs SDL_Numjoysticks() 声明它“成功时返回连接的操纵杆的数量”。我怎样才能让它告诉我函数调用时插入的操纵杆数量?我的代码是否犯了错误,或者这不是 SDL_NumJoysticks()
的工作方式?
最佳答案
请确保按照以下步骤操作并查看是否仍然存在问题:
编辑:我认为应该有用的更多信息:
关于sdl - 为什么 SDL_NumJoysticks() 从不更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21224023/
我正在用 C 语言编写一个利用 SDL 2.0 的小程序,当我无法让 SDL_NumJoysticks() 报告当时插入的操纵杆数量时遇到了问题。函数调用。我相信它正在报告 SDL 初始化函数之一期间
我是一名优秀的程序员,十分优秀!