서피스 다이얼을 볼때 마다 생각했다..
저거 빙글빙글 돌아가는거면, 레이싱휠로 쓸수있는거 아닌감?
그렇게 생각하고 어언 4년이 다되가는데,
오늘 갑자기 진짜 레이싱휠을 로 만들수 있지 않을까 생각하다가, 저 쓰잘때기 없는 서피스 다이얼을 살까 고민까지 했다..
근데 12만원이라는 창렬한 가격에 고민하던 도중.. 옆을 봣는데
엥 여기 있는 빙글빙글 휠 쓰면 되는거 아님?
영웅은 고민따위 하지않는법
일반 마우스휠이라, 별도 서피스다이얼(Windows Wheel) 라이브러리 같은것도 필요없이
걍 마우스 휠 이벤트 후킹해서 가져오면된다. (따라서 그냥 마우스 휠로도 조작이 된다) 다만 휠처럼 부드럽게 움직이지는 않으므로 적당히 감안해서..
(여담. 이거아니었으면, 한 만원되는 볼륨조절용 노브사서, 음량에 따라 움직이는 휠 만들려고했다 후후)
근데 조작 뒤지게 어려움 ㅠ
정석대로라면, XInput 가상 Driver 로 만들어야 할텐데, 그렇게 하긴 싫고 (넘 어렵고)
njz3/vJoy: Virtual Joystick (github.com)
요거 깔면, 가상 vJoystick 이 설치되고 여기에 포함된 dll 으로 조작할수 있다.
여기에 Nuget 으로 `Gma.System.MouseKeyHook` 쓸수있게 받아서 글로벌 이벤트로 받아서 x 축값만 세팅해주면 끗
Power += e.Delta;
var angle = Power / 26.67 + 90 ;
double theta_radian = angle * (Math.PI / 180);
double x = Math.Cos(theta_radian);
double y = Math.Sin(theta_radian);
// Normalize to 0 ~ 32767 range
int normalized_X = (int)((x + 1) / 2 * 32767);
int normalized_Y = (int)((y + 1) / 2 * 32767);
대충 한틱에 내컴퓨터 기준 delta 값이 120 뜨고, 한바퀴 돌리는데 대충 80틱정도 되길래 적절히 계산..
후 X,Y 값 적절히 계산.. (찍어보니 vJoystick Max 값이 32767 이길래 정규화)
하면 끝.. (근데 X값만 쓰더라 저 게임에선)
포르자로 테스트하려했는데, 이거 한번 확인해보겠다고 100기가 다운받는건 오바다 싶어서 RACE07 이라는 무료로 받은 게임이 스팀에 있길래 요걸로.. (근데 이거 xbox 360 시절 게임이라 XInput 이 아니라 DirectInput 인듯 ㅠ)
암튼 테스트후 vJoystick 과 함께 같이 칼삭
'프로그래밍 기록 > 토이' 카테고리의 다른 글
대한 축구 협회 프로그래밍 랭기지를 만들어보자 되도록 튜링완전하게.. (2) | 2024.09.28 |
---|---|
주술회전 대사로 프로그래밍을 해보자 (2) | 2024.02.12 |
[CodePaper] 코드들을 하나의 md 문서에 모으기 (0) | 2023.04.25 |
[GPT] AI-Powered 심리테스트 (0) | 2023.03.26 |
[ChatGPT] API 가 나온 기념 AI 끼리 신나게 놀게 해보자 (3) | 2023.03.04 |