조이스틱 창으로 마우스 제어

조이스틱 창으로 마우스 제어

나는 고정된 2축 장치를 사용하여 마우스의 절대 위치를 제어하려고 합니다.조종간. 나는 이것을 Windows 7에서 실행하고 싶습니다. 나는 이미 다음과 같이 다양한 프로그램을 시도했습니다.

  • j마우스
  • Xpadder
  • 조이마우스
  • 조이 2 마우스

Joy 2 마우스는 조이스틱의 절대 위치로 x축과 y축을 제어할 수 있으므로 지금까지 나에게 가장 잘 작동하지만 두 가지 문제가 발생했습니다.

  1. 조이스틱을 움직이지 않아도 마우스가 가끔 버벅거립니다.
  2. "위쪽 y축"과 "아래쪽 y축"만 설정할 수 있으므로 마우스 움직임이 적용되지 않는 조이스틱의 루트 위치 주위에 작은 각도가 있습니다.

나에게도 효과가 있을 것입니다. 누군가가 이 조이스틱(win7에서)의 정확한 위치를 얻을 수 있는 신뢰할 수 있는 방법을 알고 있다면 마우스 위치를 직접 설정할 수 있습니다.

조이스틱의 부정확성은 소프트웨어로 인해 발생합니다. 내 Mac에서도 동일한 하드웨어가 제대로 작동하고 있습니다.

답변1

조이스틱 이벤트와 마우스 위치를 python, pygamewin32api

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.

관련 정보