+ Responder ao Tópico
Resultados 1 a 3 de 3

Tópico: Utilizar Joystick como Mouse em AutoHotkey

  1. #1
    Jogador de Fliperama slipcarliknot Tem muito do que se orgulhar slipcarliknot Tem muito do que se orgulhar slipcarliknot Tem muito do que se orgulhar slipcarliknot Tem muito do que se orgulhar slipcarliknot Tem muito do que se orgulhar slipcarliknot Tem muito do que se orgulhar slipcarliknot Tem muito do que se orgulhar slipcarliknot Tem muito do que se orgulhar Avatar de slipcarliknot
    Data de Ingresso
    09/2009
    Localização
    Fortaleza CE
    Posts
    456
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)
    Reputação
    116

    Wink Utilizar Joystick como Mouse em AutoHotkey

    Opa galera!

    O que temos pra hoje é um script que transforma seu Controle ou Joystick em mouse, sendo bem útil pra quem utiliza plataformas de jogatina online como o FightCade por exemplo.

    Como funciona?
    O controle do usuário assume todas as funções de clicks (direito, esquerdo e central), Scroll (rodinha) e movimentação do mouse.

    Obs: Este Script encontra-se no Help do AutoHotKey, eu apenas fiz a tradução e adaptei algumas coisas para uso próprio (Se já tem pronto, pra quê fazer tudo do zero né? ).

    Código:
    ;========================================================================================
    ; Autor:	AutoHotkey Help
    ; Tradução: Luis Slipcar (carlito.luiscarlos@gmail.com)
    ; Função do Script:
    ;	Utilizar Joystick como Mouse.
    ;========================================================================================
    
    ;===================Variáveis de Configuração=================================================
    
    ; Aumenta a velocidade de movimentação do mouse.
    JoyMultiplier = 0.30
    
    ; Deslocamento referente ao centro do controle (calibragem), para inicar a movimentação do mouse.
    JoyThreshold = 3
    
    ; Invete o eixo Y do controle.
    InvertYAxis := false
    
    ; Botões do mouse.
    ;Botão esquerdo ex: botão quadrado no controle de playstation.
    ButtonLeft = 1
    
    ; Botão direito ex: botão O no controle de playstation.
    ButtonRight = 2
    
    ; Botão central ex: botão X no controle de playstation.
    ButtonMiddle = 3
    
    ; Controle com analógicos podem ser utilizados como a rodinha (scroll), do mouse.
    ; Delay entre os giros do scroll
    WheelDelay = 250
    
    ; Número(ID) do Controle a ser utilizado.
    JoystickNumber = 1
    
    ;==============================Inicio do Script=================================================
    ; Forca Instância única.
    #SingleInstance
    
    ; Dados do Controle:
    JoystickPrefix = %JoystickNumber%Joy
    Hotkey, %JoystickPrefix%%ButtonLeft%, ButtonLeft
    Hotkey, %JoystickPrefix%%ButtonRight%, ButtonRight
    Hotkey, %JoystickPrefix%%ButtonMiddle%, ButtonMiddle
    
    ; Cálculo de deslocamento do eixo para movimentar o cursor
    JoyThresholdUpper := 50 + JoyThreshold
    JoyThresholdLower := 50 - JoyThreshold
    if InvertYAxis
        YAxisMultiplier = -1
    else
        YAxisMultiplier = 1
    
    SetTimer, WatchJoystick, 10  ; Monitora os movimentos do Joystick.
    
    GetKeyState, JoyInfo, %JoystickNumber%JoyInfo
    
    IfInString, JoyInfo, P  ; Se o controle possui analógicos, usa como scroll.
        SetTimer, MouseWheel, %WheelDelay%
    
    return
    
    ;Subrotinas
    ; Botão esquerdo.
    ButtonLeft:
    SetMouseDelay, -1  ; Suaviza o movimento.
    MouseClick, left,,, 1, 0, D
    SetTimer, WaitForLeftButtonUp, 10
    return
    
    ; Botão direito.
    ButtonRight:
    SetMouseDelay, -1  ; Suaviza o movimento.
    MouseClick, right,,, 1, 0, D
    SetTimer, WaitForRightButtonUp, 10
    return
    
    ; Botão central
    ButtonMiddle:
    SetMouseDelay, -1  ; Suaviza o movimento.
    MouseClick, middle,,, 1, 0, D
    SetTimer, WaitForMiddleButtonUp, 10
    return
    
    ; Verifica o estado do botão (Se está ou não pressionado).
    WaitForLeftButtonUp:
    if GetKeyState(JoystickPrefix . ButtonLeft)
        return  
    
    SetTimer, WaitForLeftButtonUp, Off
    SetMouseDelay, -1
    MouseClick, left,,, 1, 0, U
    return
    
    WaitForRightButtonUp:
    if GetKeyState(JoystickPrefix . ButtonRight)
        return  
    	
    SetTimer, WaitForRightButtonUp, Off
    MouseClick, right,,, 1, 0, U
    return
    
    WaitForMiddleButtonUp:
    if GetKeyState(JoystickPrefix . ButtonMiddle)
        return  
    	
    SetTimer, WaitForMiddleButtonUp, Off
    MouseClick, middle,,, 1, 0, U
    return
    
    WatchJoystick:
    Movimenta := false  ; Padrão.
    SetFormat, float, 03
    GetKeyState, JoyX, %JoystickNumber%JoyX
    GetKeyState, JoyY, %JoystickNumber%JoyY
    if JoyX > %JoyThresholdUpper%
    {
        Movimenta := true
        DeltaX := JoyX - JoyThresholdUpper
    }
    else if JoyX < %JoyThresholdLower%
    {
        Movimenta := true
        DeltaX := JoyX - JoyThresholdLower
    }
    else
        DeltaX = 0
    if JoyY > %JoyThresholdUpper%
    {
        Movimenta := true
        DeltaY := JoyY - JoyThresholdUpper
    }
    else if JoyY < %JoyThresholdLower%
    {
        Movimenta := true
        DeltaY := JoyY - JoyThresholdLower
    }
    else
        DeltaY = 0
    if Movimenta
    {
        SetMouseDelay, -1  ; Suaviza o movimento.
        MouseMove, DeltaX * JoyMultiplier, DeltaY * JoyMultiplier * YAxisMultiplier, 0, R
    }
    return
    
    Movimentaçao do Scroll (rodinha).
    MouseWheel:
    GetKeyState, JoyPOV, %JoystickNumber%JoyPOV
    if JoyPOV = -1  ; No angle.
        return
    if (JoyPOV > 31500 or JoyPOV < 4500)  ; Cima.
        Send {WheelUp}
    else if JoyPOV between 13500 and 22500  ; Baixo.
        Send {WheelDown}
    return
    O melhor lugar para criticar o próximo é na frente do espelho !!!


    GGPO: slipcarliknot
    Supercade: slipcarliknot
    Arclive: slipcarliknot
    PSN_ID: slipcarliknot

  2. #2
    Jogador de Halo (2001) linderson Tem muito do que se orgulhar linderson Tem muito do que se orgulhar linderson Tem muito do que se orgulhar linderson Tem muito do que se orgulhar linderson Tem muito do que se orgulhar linderson Tem muito do que se orgulhar linderson Tem muito do que se orgulhar linderson Tem muito do que se orgulhar linderson Tem muito do que se orgulhar linderson Tem muito do que se orgulhar
    Data de Ingresso
    10/2011
    Posts
    91
    Posts de Blog
    1
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)
    Reputação
    103

    Re: Utilizar Joystick como Mouse em AutoHotkey

    @slipcarliknot ,cara vc esta de parabéns seus tópicos são ótimos queria uma ajuda como faria uma função para quando pressionar um certo botão do Joystick,para habilitar e desabilitar a função do mouse .Ex botoes 7+8 no controle

  3. #3
    Jogador de Fliperama slipcarliknot Tem muito do que se orgulhar slipcarliknot Tem muito do que se orgulhar slipcarliknot Tem muito do que se orgulhar slipcarliknot Tem muito do que se orgulhar slipcarliknot Tem muito do que se orgulhar slipcarliknot Tem muito do que se orgulhar slipcarliknot Tem muito do que se orgulhar slipcarliknot Tem muito do que se orgulhar Avatar de slipcarliknot
    Data de Ingresso
    09/2009
    Localização
    Fortaleza CE
    Posts
    456
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)
    Reputação
    116

    Re: Utilizar Joystick como Mouse em AutoHotkey

    Citação Postado originalmente por linderson Ver Post
    @slipcarliknot ,cara vc esta de parabéns seus tópicos são ótimos queria uma ajuda como faria uma função para quando pressionar um certo botão do Joystick,para habilitar e desabilitar a função do mouse .Ex botoes 7+8 no controle
    Opa cara tudo blz!?

    Pra fazer o que vc quer será necessário o uso de um script auxiliar, para quando vc desabilitar o mouse, o outro vai ficar esperando a tecla para chamar ele de volta.

    Segue um exemplo pra vc entender melhor.
    No exemplo, ao ser apertada a tecla 1 no controle(no controle do ps4 que uso aqui é o quadrado), o script1 chama o script2 e vice versa.

    script1
    Código:
    botao = 1
    
    JoystickNumber = 0
    if JoystickNumber <= 0
    {
    	Loop 16  ; Identifica o controle pelo número.
    	{
    		GetKeyState, JoyName, %A_Index%JoyName
    		if JoyName <>
    		{
    			JoystickNumber = %A_Index%
    			break
    		}
    	}
    	if JoystickNumber <= 0
    	{
    		MsgBox Não há controle conectado.
    		ExitApp
    	}
    }
    
    JoystickPrefix = %JoystickNumber%Joy
    Hotkey, %JoystickPrefix%%botao%, Joy1
    
    Joy1::
    Run script2.ahk
    sleep 100
    ExitApp
    script2
    Código:
    botao = 1
    JoystickNumber = 0
    if JoystickNumber <= 0
    {
    	Loop 16  ;Identifica o controle pelo número.
    	{
    		GetKeyState, JoyName, %A_Index%JoyName
    		if JoyName <>
    		{
    			JoystickNumber = %A_Index%
    			break
    		}
    	}
    	if JoystickNumber <= 0
    	{
    		MsgBox Não há controle conectado.
    		ExitApp
    	}
    }
    
    JoystickPrefix = %JoystickNumber%Joy
    Hotkey, %JoystickPrefix%%botao%, Joy1
    
    Joy1::
    Run script1.ahk
    sleep 100
    ExitApp
    Última edição por slipcarliknot; 5 Dias Atrás às 13:48.
    O melhor lugar para criticar o próximo é na frente do espelho !!!


    GGPO: slipcarliknot
    Supercade: slipcarliknot
    Arclive: slipcarliknot
    PSN_ID: slipcarliknot

+ Responder ao Tópico

Tópicos Similares

  1. Esconder Ponteiro do Mouse Em AutoHotkey.
    Por slipcarliknot no fórum Scripts e Programas Úteis (Qualquer linguagem)
    Respostas: 7
    Último Post: 2 Semanas Atrás, 11:28
  2. Como ligar uma placa pré amplificadora em uma placa amplificadora para utilizar microfone
    Por ProByFlahh no fórum Videokê, montagem e programas usados.
    Respostas: 1
    Último Post: 20/05/2018, 15:38
  3. Como substituir o volante por um mouse nos jogos de corrida?
    Por alexx_arcade no fórum Emuladores de teclas e de joysticks
    Respostas: 5
    Último Post: 24/07/2014, 11:48
  4. Como mudar o cursor do mouse
    Por alexx_arcade no fórum Scripts e Programas Úteis (Qualquer linguagem)
    Respostas: 0
    Último Post: 19/02/2013, 16:24
  5. Mouse/joystick/teclado "desligando" no windows XP
    Por ericitaquera no fórum Windows (Todas as Versões)
    Respostas: 10
    Último Post: 29/01/2011, 00:55

Tags para este Tópico

Marcadores

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • Você não pode enviar respostas
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  • BB Code está Ligado
  • Smilies estão Ligados
  • Código [IMG] está Ligado
  • Código HTML está Desligado