스티어링 휠 게임 컨트롤러가 있습니다. 이제 NFS-17과 같은 경주 용 게임용 드라이버를 작성하려고합니다. 게임에서 Xinput을 사용하고 있음을 알고 있습니다. 내 질문 : 1) 스티어링 휠을 돌렸을 때 게임에 메시지를 보내는 방법. 2) SendMessage()를 사용하고 있습니까? 3) SendMessage()를 사용하는 경우 게임 창 핸들을 가져 오는 방법과 wParam 및 lParam을 보내야합니다.경기 용 게임 컨트롤러에 메시지 보내기 Xinput
답변
X 입력은 xbox360 컨트롤러 용입니다. 핸들 X 축의 경우 게임 패드의 두 트리거를 사용할 수 있습니다. XInput은 getter/setter입니다. P 연결되어있는 컨트롤러의 상태를 알려주고 요청에 연결되거나 연결되지 않은 경우보고합니다. 아무 것도 모니터링하거나 저장할 수 없으며 메시지를 보내지도 않습니다. 입력 포커스가 있습니다. 메시지를 보내려면 빌드 할 수있는 앱을 사용해야합니다. 자, 실제로 필요한 것까지. 컨트롤러의 상태를 검사 할 간단한 C++ 응용 프로그램을 작성할 수는 있지만 잠깐 기다려주십시오. xbox360 컨트롤러가 없습니다. 먼저 응용 프로그램이 oem 드라이버를 사용하여 핸들에 어떻게 반응하는지 테스트합니다. USB 포트 (MSDN의 GetInputState())에 연결되어있는 것과 같이 읽을 수 없다면 Windows 일반 드라이버를 사용해보십시오 (어떤 제품이라도 설치하도록하십시오. 심지어는 xbox360으로 스티어링 휠을 인식 할 수도 있습니다. 한 점과 비슷하지만 차이점은 더 비싼 바퀴가 달린 축과 버튼의 수임). 그러면 컨트롤러 (스티어링 휠)의 상태를 실제로 읽었을 때 GetHDC (윈도우 핸들)를 사용하십시오. 여기서 FindWindow (윈도우 이름/제목)를 통해 윈도우 핸들을 검색합니다. alt-tab을 사용하여 게임의 창에 사용 된 제목이 무엇이든 mouseover로 확인하십시오. 창 핸들과 장치 컨텍스트를 소유하고있을 때 장치 핸들을 통해 WndProc 함수를 통해 콜백 (call back) WndProc 함수에 메시지를 보내고 장치 컨텍스트를 통해 텍스트/그리기 이미지/모양을 표시 할 수도 있습니다. 메시지는 사용 가능한 휠이없는 경우 해당 가상 키 코드 (예 : UP 화살표의 경우 VK_UP ... 찾아보기)가 있어야 키보드에서 누를 수 있습니다. 트릭은 바퀴 회전의 모든 각도에 대해 PWM을 시뮬레이트하는 것입니다. 스티어링 잠금 장치가 제거되고 KEY_UP 메시지와 그에 상응하는 KEY_UP 메시지가 나올 때까지 KEY_DOWN 메시지를 하나씩 보내면 스티어링 잠금 장치는 왼쪽으로 높은 바퀴 회전을위한 VK_LEFT 키 코드의 푸시/교대 주파수. 휠의 각도가 낮 으면 키 누르기/해제 메시지 사이에 더 큰 멈춤이 생깁니다. 운전사를 만드는 보너스는 자신이 원하는대로 감도, 버튼 상관 관계, 데드 존을 조정할 수 있다는 것입니다.
다른 한편으로는 이미 이것과 같은 시뮬레이터가 있습니다. 그리고 다시 당신은 USB + 통신 프로토콜을 사용하여 6 + 1 transmision으로 당신 만의 스티어링 휠을 만들 수 있습니다.), 마이크로 컨트롤러 (PIC, atmega, nxp 등등. 무엇보다 저렴하고 하드웨어 USB를 준비하거나 USB 컨트롤러에 추가), X, Y 등 축에 대한 가변 저항과 구동 시스템을위한 일부 부품. 행운과 유튜브에 게시 : P!
P. 지옥 지금은 너무 늦었 어,하지만 이봐 ... 나는 내가 한 번도 해보지 못한 맘보 - 잼보를 써야한다고 느꼈지만, 그렇게하면 게으르지 않았다. :)
업데이트 : xInput은 호환성이있을 때 (아마도 하이 엔드 휠 및 기쁨) 작동하지만 directx는 핸들 휠도 알고 있습니다. 나에게 그것은 유일한 해결책이었다. 마이크로 소프트는 XINput이 오디오와 호환 가능한 제품을 제공하기 때문에 XInput과 directX 모두 사용해야한다고 말한다. algorythm은 건전하지만 많은 구현에 개방적입니다. 전용 도구가 내 버전을 지원하지 않았기 때문에 GTA SA에 대해이 기능을 성공적으로 구현했습니다. 이제 나는 Acc와 Brake를 페달에서 마침내 얻었습니다. 나는 자신의 선택 (경험적인 것)의 특정 주파수를 달성하기 위해 타이머를 사용했고, 0 근처에서부터 전체 기간까지의 펄스 폭을 조절했습니다 (페달의 가벼운 터치 및 지속적으로 페달을 금속에 적용).모든 펄스에서 나는 두 개의 메시지를 보냈다 : 펄스의 시작에서 W/S 키를 누르고, 계산 된 펄스 폭이 최종 값에 도달했을 때 W/S 키를 위로 움직였다. Pulse Width의 공식은 페널이 최대 주행 거리에서 이동 한 경우 (예 : DirectInput이 [-1000,1000]의 정수를보고합니다.) [-fullbrake , fullacceleration]).
- 1. Android MVC : 컨트롤러에 메시지 보내기
- 2. 지연 Xbox360 게임 패드의 XInput 이벤트 폴링
- 3. -tabBarController를 사용하여보기 컨트롤러에 메시지 보내기 : didSelectViewController?
- 4. Xinput 폴링 스레딩 디자인
- 5. Google Play 게임 : 다른 플레이어에게 메시지 보내기
- 6. iOS 용 XMPPFramework을 통해 메시지 보내기
- 7. 브라우저에서 Unity3D로 메시지 보내기
- 8. 메시지 다음에 메시지 보내기
- 9. form_for로 컨트롤러에 데이터 보내기
- 10. MVC 컨트롤러에 localPath 보내기
- 11. angularjs 서비스에서 메시지 보내기
- 12. 프로그래밍 방식으로 iPad에 메시지 보내기 메시지 app
- 13. 메시지 보내기
- 14. 경기
- 15. 녹 경기
- 16. Game Center - 경기 데이터 보내기 및 1 번 결과가
- 17. 자바로 GCM 메시지 보내기
- 18. EmberJS의 Application 컨트롤러에 작업 보내기
- 19. Laravel 컨트롤러에 Ajax 데이터 보내기
- 20. 인터페이스를 사용하여 컨트롤러에 목록 보내기?
- 21. 보기에서 컨트롤러에 해시 값 보내기
- 22. webapi 컨트롤러에 C# 개체 보내기
- 23. 컨트롤러에 ID 보내기 및 저장 ..?
- 24. ASP.Net MVC : 컨트롤러에 JSON 보내기
- 25. 다른 Sidenav 컨트롤러에 데이터 보내기
- 26. 컨트롤러에 GSP 테이블 데이터 보내기
- 27. Ajax를 통해 컨트롤러에 텍스트 보내기
- 28. Android : 다음 경기 용 카드를 가져 가십시오.
- 29. iOS의 topViewController에서 rootViewController로 메시지 보내기
- 30. Interface Builder에서 생성 된 객체에 메시지 보내기