Java Image получить изображение на рабочем столе и создать макрос - PullRequest
3 голосов
/ 01 мая 2011

Ну, я играю в онлайн флеш игру, и вы должны нажимать на белые квадраты как можно быстрее.Как я мог автоматизировать это с Java?Расположение ящиков рандомизировано.

Я пытался использовать класс Robot и использовать getPixelColor, но это слишком медленно.

Итак, что мне нужно сделать:

  1. окна моей игры имеют размер окна 500x500, поэтому получите из него пиксели
  2. найдите 5x5 белых полей
  3. нажмите на них

Есть предложения?

1 Ответ

1 голос
/ 01 мая 2011

Вы можете использовать класс Rectangle , используя метод "contains".

Или вы можете создать свой собственный, который по сути работает так:

  1. Отслеживайте свои ящики, их текущее положение (x, y) и их (ширина, высота)
  2. Используйте событие mouseClicked (), чтобы получить (x, y) позицию щелчка
  3. Внутри mouseClicked () прокрутите все поля и проверьте, находится ли щелчок мыши (x, y) внутри поля

Например, если у вас есть два поля на экране:

boxA: (x, y, width, height) = (0, 0, 10, 10)
boxB: (x, y, width, height) = (20, 20, 10, 10)

Это дает вам две коробки, каждая из которых имеет размер 10x10 пикселей. «boxA» имеет верхний левый угол в (0, 0), а «boxB» имеет верхний левый угол в (20, 20).

Если координата события "mouseClicked" (x, y) равна (7, 7), то это находится в пределах "boxA" (поскольку точка (7, 7) находится между (0, 0) и ( 10, 10)

Если координата события "mouseClicked" (x, y) равна (23, 25), то она находится внутри "boxB", потому что (23, 25) находится между (20, 20) и (30, 30)

Вы правы, что getPixelColor слишком медленный для того, что вы пытаетесь сделать. Цикл по списку ящиков будет намного быстрее.


Если вы хотите углубиться в более глубокий пример, вот статья о концепции обнаружения столкновений .

...