
나는 고정된 2축 장치를 사용하여 마우스의 절대 위치를 제어하려고 합니다.조종간. 나는 이것을 Windows 7에서 실행하고 싶습니다. 나는 이미 다음과 같이 다양한 프로그램을 시도했습니다.
- j마우스
- Xpadder
- 조이마우스
- 조이 2 마우스
Joy 2 마우스는 조이스틱의 절대 위치로 x축과 y축을 제어할 수 있으므로 지금까지 나에게 가장 잘 작동하지만 두 가지 문제가 발생했습니다.
- 조이스틱을 움직이지 않아도 마우스가 가끔 버벅거립니다.
- "위쪽 y축"과 "아래쪽 y축"만 설정할 수 있으므로 마우스 움직임이 적용되지 않는 조이스틱의 루트 위치 주위에 작은 각도가 있습니다.
나에게도 효과가 있을 것입니다. 누군가가 이 조이스틱(win7에서)의 정확한 위치를 얻을 수 있는 신뢰할 수 있는 방법을 알고 있다면 마우스 위치를 직접 설정할 수 있습니다.
조이스틱의 부정확성은 소프트웨어로 인해 발생합니다. 내 Mac에서도 동일한 하드웨어가 제대로 작동하고 있습니다.
답변1
조이스틱 이벤트와 마우스 위치를 python
, pygame
및win32api
import pygame, sys,os
import win32api, win32con
from win32api import GetSystemMetrics
from pygame.locals import *
width = GetSystemMetrics (0)
height = GetSystemMetrics (1)
pygame.init()
pygame.joystick.init()
joystick = pygame.joystick.Joystick(0)
joystick = joystick.init()
while 1:
for event in pygame.event.get():
if event.type == QUIT:
sys.exit(0)
else:
if event.type == 7:
if event.axis==0:
a = (event.value + 1)/2
x,y = win32api.GetCursorPos()
win32api.SetCursorPos((x,int(a*height)))
elif event.axis==2:
a = (event.value + 1)/2
x, y = win32api.GetCursorPos()
win32api.SetCursorPos((int(a*width),y))
이는 컴파일되어야 하고 모든 종속성을 포함해야 하기 때문에 모든 사람에게 적합한 솔루션은 아닐 수 있습니다. 하지만 이런 방식으로 모든 마우스 이벤트를 매우 정밀하게 제어하는 것이 가능합니다. 이는 작은 코드 조각이며 매우 간단합니다. 간단한 이벤트 루프를 기반으로 합니다 pygame
.