[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);
위의 코드를 이용하여 mouseX
와 mouseY
변수에 마우스의 x, y 좌표를 가져올 수 있습니다.
SDL을 사용하여 마우스 입력을 처리하는 방법에 대해 간단히 알아보았습니다. 보다 복잡한 입력 처리 및 그래픽 처리를 위해서는 SDL의 다양한 기능 및 문서를 참고하시기 바랍니다.
References
- SDL 공식 문서: https://wiki.libsdl.org/
- Lazy Foo’ Productions의 SDL 튜토리얼: https://lazyfoo.net/tutorials/SDL/index.php