Xdotool для автоматизации движений в Богоявлении (Boulderdash Clone)

Я пытаюсь автоматизировать критические ходы в моем любимом клоне Boulderdash под названием «Крещение» (доступен через Ubuntu Software Center).

В следующем примере символ должен двигаться: 3x «Стрелка вниз» и 1x «Стрелка вправо» .

enter image description here

Написание сценария довольно просто. После запуска он (1) устанавливает фокус на игровое окно и (2) отправляет команды нажатия клавиш через Xdotool.

#!/bin/bash

# set focus to epiphany
xdotool search --onlyvisible --class epiphany windowactivate
sleep 0.5

# move down one unit
xdotool keydown --delay 100 Down Arrow; xdotool keyup --delay 12 Down Arrow

# move down one unit
xdotool keydown --delay 100 Down Arrow; xdotool keyup --delay 12 Down Arrow

# move down one unit
xdotool keydown --delay 100 Down Arrow; xdotool keyup --delay 12 Down Arrow

# move right one unit
xdotool keydown --delay 100 Right Arrow; xdotool keyup --delay 12 Right Arrow

Но, это решение не работает последовательно.

Иногда персонаж завершает только часть движения - e. г. только 2x "Стрелка вниз". В других случаях он движется слишком медленно и сокрушается алмазом.

Есть ли какие-либо предложения о том, как решить эту проблему - предпочтительно с помощью Xdotool?


Редактировать:

Простые команды, такие как xdotool key Down Arrow, как было предложено, не работают. Персонаж в игре вообще не двигается.

4
задан 25 November 2013 в 23:28

1 ответ

Сокращение ваших задержек кажется очевидным ответом. По умолчанию это 12 мс, и вы увеличили это значение до 100 мс для ваших нажатий стрелок, не объясняя почему.

И вместо использования keydown, затем keyup и необходимости беспокоиться о задержках и прочем джазе, просто используйте key. Это позволяет вам просто соединять ключи вместе, как босс:

xdotool key Down Down Down Right

Если вы обнаружите, что это слишком быстро, снова введите ваш --delay, но начните с 12 и продолжайте работать до тех пор, пока он не сработает.

0
ответ дан 25 November 2013 в 23:28

Другие вопросы по тегам:

Похожие вопросы: