Xdotool para automatizar movimentos no Epiphany (Boulderdash Clone)

1

Estou tentando automatizar movimentos críticos no meu clone Boulderdash favorito chamado "Epiphany" (disponível através do Ubuntu Software Center).

No exemplo a seguir, o caractere deve ser movido: 3x "Seta para baixo" e 1x "Seta para a direita" .

Escreverumscriptébastantesimples.Umavezlançado,(1)defineofocoparaajaneladojogoe(2)enviaoscomandosdeteclasatravésdoXdotool.

#!/bin/bash#setfocustoepiphanyxdotoolsearch--onlyvisible--classepiphanywindowactivatesleep0.5#movedownoneunitxdotoolkeydown--delay100DownArrow;xdotoolkeyup--delay12DownArrow#movedownoneunitxdotoolkeydown--delay100DownArrow;xdotoolkeyup--delay12DownArrow#movedownoneunitxdotoolkeydown--delay100DownArrow;xdotoolkeyup--delay12DownArrow#moverightoneunitxdotoolkeydown--delay100RightArrow;xdotoolkeyup--delay12RightArrow

Masestasoluçãonãofuncionadeformaconsistente.

Àsvezes,opersonagemsócompletapartedomovimento-e.g.apenas2x"seta para baixo". Em outras ocasiões, ele se move muito devagar e é esmagado pelo diamante.

Há alguma sugestão sobre como resolver isso - de preferência usando Xdotool?

Editar:

Os comandos diretos como xdotool key Down Arrow - como sugerido - não funcionam. O personagem no jogo não se move de jeito nenhum.

    
por somethis 25.11.2013 / 15:01

1 resposta

0

Reduzir seus atrasos parece ser a resposta óbvia. O padrão é 12ms e você aumentou para 100ms para suas pressões de seta, sem explicar o motivo.

E, em vez de usar keydown then keyup e ter que se preocupar com atrasos e todo esse jazz, use key . Isso permite que você apenas encadeie as chaves, como um chefe:

xdotool key Down Down Down Right

Se você achar isso muito rápido, reintroduza seu --delay , mas comece a partir de 12 e trabalhe até que funcione.

    
por Oli 25.11.2013 / 15:27