소스 검색

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();


불러오는 중...
취소
저장