[c++] SDL 마우스 입력 처리

SDL은 게임 및 멀티미디어 응용프로그램을 위한 크로스 플랫폼 개발 라이브러리로서, 화면 출력 및 입력 처리와 같은 다양한 기능을 제공합니다. 이 포스트에서는 SDL을 사용하여 C++로 마우스 입력을 처리하는 방법을 알아보겠습니다.

프로젝트 설정

먼저, SDL을 설치하고 프로젝트에 링크합니다. 그리고 main.cpp 파일을 생성하여 다음과 같이 SDL을 초기화합니다.

#include <SDL2/SDL.h>

int main(int argc, char* argv[]) {
    SDL_Init(SDL_INIT_VIDEO);

    // 윈도우 생성, 렌더러 설정 등의 코드

    SDL_Quit();

    return 0;
}

마우스 입력 처리

마우스 입력을 처리하기 위해서는 주로 이벤트 핸들링을 사용합니다. 다음은 SDL을 사용하여 마우스 클릭 이벤트를 처리하는 예제 코드입니다.

SDL_Event event;

while (SDL_PollEvent(&event)) {
    switch (event.type) {
        case SDL_QUIT:
            // 창 닫기 버튼 클릭 시 처리
            break;

        case SDL_MOUSEBUTTONDOWN:
            if (event.button.button == SDL_BUTTON_LEFT) {
                // 마우스 왼쪽 버튼 클릭 시 처리
            } else if (event.button.button == SDL_BUTTON_RIGHT) {
                // 마우스 오른쪽 버튼 클릭 시 처리
            }
            break;
    }
}

위 코드에서 SDL_MOUSEBUTTONDOWN 이벤트를 통해 마우스 입력을 감지하고, event.button.button을 통해 클릭한 버튼을 확인하여 처리합니다.

마우스 좌표 가져오기

마우스의 현재 위치를 가져오려면 다음과 같이 합니다.

int mouseX, mouseY;
SDL_GetMouseState(&mouseX, &mouseY);

위의 코드를 이용하여 mouseXmouseY 변수에 마우스의 x, y 좌표를 가져올 수 있습니다.

SDL을 사용하여 마우스 입력을 처리하는 방법에 대해 간단히 알아보았습니다. 보다 복잡한 입력 처리 및 그래픽 처리를 위해서는 SDL의 다양한 기능 및 문서를 참고하시기 바랍니다.

References