參考資訊:
https://wiki.libsdl.org/FrontPage
main.c
#include <stdio.h> #include <stdlib.h> #include <SDL.h> #include <SDL2_gfxPrimitives.h> int main(int argc, char **argv) { int num = 0; const int w = 320; const int h = 240; const int bpp = 16; char buf[255] = {0}; SDL_Window *window = NULL; SDL_Renderer *renderer = NULL; SDL_Init(SDL_INIT_VIDEO | SDL_INIT_JOYSTICK); window = SDL_CreateWindow("main", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, w, h, SDL_WINDOW_SHOWN); renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC); SDL_RenderClear(renderer); SDL_RenderPresent(renderer); SDL_Event event = {0}; SDL_Joystick* joy = NULL; num = SDL_NumJoysticks(); joy = SDL_JoystickOpen(0); printf("Joystick (%d, %p)\n", num, joy); while (1) { if (SDL_PollEvent(&event)) { if (event.type == SDL_JOYAXISMOTION) { if(event.jaxis.axis == 0) { printf("X Axis %d\n", event.jaxis.value); } if(event.jaxis.axis == 1) { printf("Y Axis %d\n", event.jaxis.value); } } if (event.type == SDL_JOYBUTTONUP) { printf("UP %d\n", event.jbutton.button); } if (event.type == SDL_JOYBUTTONDOWN) { printf("DOWN %d\n", event.jbutton.button); } } SDL_Delay(15); } SDL_JoystickClose(joy); SDL_DestroyRenderer(renderer); SDL_DestroyWindow(window); SDL_Quit(); return 0; }