control mouse com janelas de joystick

1

Eu tento controlar minhas posições absolutas com um joystick de dois eixos, joystick . Eu quero isso rodando em um windows 7. Eu já tentei muitos programas diferentes como

  • jmouse
  • Xpadder
  • Joymouse
  • joy 2 mouse

joy 2 mouse funciona melhor para mim até agora, como eu posso controlar o eixo xey com a posição absoluta do joystick, mas me deparei com 2 problemas

  1. o mouse gagueja algumas vezes, mesmo quando não estou movendo o joystick
  2. Eu só posso definir o "eixo up-y" e o "down-y-axis", para que haja um pequeno ângulo ao redor da posição da 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 desse 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.

    
por Milla Well 30.10.2012 / 13:42

1 resposta

0

Eu mesmo encontrei uma solução manipulando os eventos do joystick e a posição do mouse com python , pygame e 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))

Isso 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. Ele é baseado no loop de eventos simples pygame .

    
por 07.11.2012 / 13:25