(MSDN)고감도 마우스 움직임 감지(Taking Advantage of High-Definition Mouse Movement)
이 글은 MSDN에 있는 글을 요약한 것으로 발번역, 오역, 의역이 난무합니다 ㅠㅠ
원문은 http://msdn.microsoft.com/ko-kr/library/ee418864(v=vs.85).aspx
다이렉트 인풋(direct input)을 찾다가 우연히 고감도 마우스 움직임 활용(Taking Advantage of High-Definition Mouse Movement) 이라는 msdn 글을 보고 번역하는 영어 실력은 안되고 그냥 요약 정리(어자피 블로그가 정보 수집해놓으려고 만든거라서;;)만 알아볼 수 있을 정도로만 대충 해놓겠음
마우스 움직임을 감지 할 수 있는 방법 세 가지를(WM_MOUSEMOVE, WM_INPUT, DirectInput) 그것들을 비교 한 글이다
-------------------------------------------------------------------------------------------------------------------------
WM_MOUSEMOVE
WM_MOUSEMOVE를 사용해서 받은 데이터는 화면 해상도에 제한이 되어 있다(마우스가 픽셀 단위로 움직인다는 뜻) 그것 때문에 만약 마우스를 살짝만 움직인다면 WM_MOUSEMOVE 메세지가 발생되지 않는다.
(장점은 써져있는데 게임 개발쪽 이야기가 아닌거 같아서 생략함)
WM_MOUSEMOVE는 일반적으로 마우스 포인터를 움직일 때는 상관없지만 FPS게임 카메라를 구현하는데에서는 좋은 방법이 아니다.
WM_INPUT
로우 레벨의 데이터를 얻을 수 있는 장점이 있음
마우스 가속도가 반영되지 않는 단점이 있음(뭐 따로 넣을 수 있는듯??)
그리고 윈도우마우스처럼 커서를 따로만들려면 노력이 필요함
DirectInput
두번째 쓰레드를 만들고 directinput API를 사용해 WM_INPUT 의 데이터를 직접 받음(WM_INPUT보다 좀 더 연산을 많이 한다고 함)
키보드 마우스 장치의 데이터를 얻을 때 장점이 없고 추천하지 않는다
요약
고감도 마우스 움직임을 캐치하기 위해 사용할 수 있는 최적의 방법은 WM_INPUT이다. 물론 일반적인 상황에서는 WM_MOUSEMOVE를 사용해도 무방하다.
결론은 윈도우 메세지를 써라...
-------------------------------------------------------------------------------------------------------------------------
'Game Develop > Etc' 카테고리의 다른 글
크라이엔진 무료로 공개 (1) | 2016.05.25 |
---|---|
울펜슈타인 에너미테러토리 소스코드를 비주얼 스튜디오로 디버그해보자 (1) | 2016.03.08 |
(링크)ps4 엑스박스 원에 사용 가능한 18개의 추가적인 개발 툴들 (0) | 2016.03.08 |
(링크)게임 리소스 구할만한 사이트 (0) | 2016.03.07 |