controlar mouse com janelas de joystick

controlar mouse com janelas de joystick

Eu tento controlar a posição absoluta do meu mouse com uma posição fixa de dois eixoscontrole de video game. Quero que isso rode no Windows 7. Já tentei muitos programas diferentes como

  • jmouse
  • XPadder
  • rato alegre
  • alegria 2 rato

O mouse joy 2 funciona melhor para mim até agora, pois posso controlar os eixos x e y com a posição absoluta do joystick, mas me deparei com 2 problemas

  1. o mouse às vezes gagueja, mesmo quando não estou movendo o joystick
  2. Só posso definir o "eixo y para cima" e o "eixo y para baixo", de modo que haja um pequeno ângulo em torno da posição raiz do joystick, onde nenhum movimento do mouse é aplicado.

Para mim também funcionaria, se alguém souber uma maneira confiável de obter a posição exata deste joystick (no win7), então eu mesmo posso definir a posição do mouse.

A imprecisão do joystick é causada pelo software. Eu tenho o mesmo hardware funcionando corretamente no meu mac.

Responder1

Eu mesmo encontrei uma solução manipulando os eventos do joystick e a posição do mouse pythoncom pygameewin32api

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))

Esta pode não ser uma solução para todos, porque deve ser compilado e todas as dependências precisam ser incluídas. Mas desta forma é possível controlar todos os eventos do mouse com muita precisão. É um pequeno trecho de código e bastante simples. É baseado no pygameloop de eventos simples.

informação relacionada