>
Game Develop/Etc

(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를 사용해도 무방하다.

결론은 윈도우 메세지를 써라...


-------------------------------------------------------------------------------------------------------------------------



(네이버 블로그 - 2015.01.07. 11:40)


,

최근 댓글

최근 트랙백

알림

이 블로그는 구글에서 제공한 크롬에 최적화 되어있고, 네이버에서 제공한 나눔글꼴이 적용되어 있습니다.

태그

카운터

Today :
Yesterday :
Total :