Преглед на файлове

Add analog stick gamepad controls

master
Nathaniel Walizer преди 11 месеца
родител
ревизия
eff0608b45
променени са 1 файла, в които са добавени 28 реда и са изтрити 0 реда
  1. +28
    -0
      src/sdl_input.c

+ 28
- 0
src/sdl_input.c Целия файл

@@ -117,6 +117,34 @@ static int sdl_input_update(nes_Input_Reader* reader,
}
}

} else if (SDL_CONTROLLERAXISMOTION == event.type) {
const uint8_t axis = event.caxis.axis;
const int16_t value = event.caxis.value;
uint8_t mask_set = 0;
uint8_t mask_clear = 0;

if (SDL_CONTROLLER_AXIS_LEFTX == axis) {
mask_clear = (1 << Button_Left) |
(1 << Button_Right);
if (value <= -8192) {
mask_set = (1 << Button_Left);
} else if (value >= 8192) {
mask_set = (1 << Button_Right);
}

} else if (SDL_CONTROLLER_AXIS_LEFTY == axis) {
mask_clear = (1 << Button_Down) |
(1 << Button_Up);
if (value <= -8192) {
mask_set = (1 << Button_Up);
} else if (value >= 8192) {
mask_set = (1 << Button_Down);
}
}

input->controllers[0].buttons &= ~mask_clear;
input->controllers[0].buttons |= mask_set;

} else if (SDL_CONTROLLERDEVICEADDED == event.type) {
if (NULL == reader->data) {
reader->data = sdl_find_gamepad();


Loading…
Отказ
Запис