Author Topic: Проблема в поиске фрагмента изображения  (Read 1938 times)

0 Members and 3 Guests are viewing this topic.

arseniysemenov

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Вообщем. Проблема такова: Есть программка, которая нажимает на точку пока не увидит фрагмент изображения. Казалось бы, чего тут сложного? Но проблема состоит в том, программка не видит тот фрагмент, который должен находить. Я пробовал осуществлять поиск фрагмента не в игре с таким же условием, и всё получилось. Но я решил посмотреть на фотографию, которая получается при создании скриншота и его изменении его формата: она очень мутная, если приблизить, а если смотреть "в таком же разрешении, что и ноут", то тогда всё нормально. Так вот вопрос к спецам: является ли это проблема всей функции?

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
является ли это проблема всей функции?

У функции, как у таковой, в кликере вообще нет проблемы. НИ РАЗУ, за несколько лет, не замечал такого, чтобы кликер как-то сбоил на поиске фрагмента изображения. "Сбоил" когда-то давно, но только когда я сам косячил.
Я не ду... Потому и не бу...

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Ну код хоть показал бы, глянули бы что там он делает, ото по описанию мутно както выглядит.
 
Ну и скриншоты и искомый фрагмент не помешал бы.

Если в своем алгоритме уверен, то скорее всего дело в несовпадении искомой картинки с тем что на экране.

Советы:
. делай фрагмент кликерманом в формате bmp
. используй цветокоррекцию по возможности
. по мере ненахождения картинки, уменьшай процент совпадения (IF_PICTURE_IN (x, y, x2, y2, file, [bgcolor], [currency] ) в пределах 65-100%

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Я не ду... Потому и не бу...

arseniysemenov

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Теперь всё отлично за исключением одной шняги...
Скрипт отлично всё находит и всё выполняет, НО:
Порядок выполнения не тот, который хотелось бы иметь...
Разъясняю: я бы хотел сделать так, чтобы после нахождения фрагмента скрипт останавливался, но перед остановкой он делает ещё один цикл, в следствии чего скрипт выполняется бесконечно.
GETSCREEN
    IF_PICTURE_IN (213,380, 514,484, "file.bmp", -1, 100)
HALT
    ELSE
LCLICK(463, 150)
WAITMS(100)
    END_IF



Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Теперь всё отлично за исключением одной шняги...
Скрипт отлично всё находит и всё выполняет, НО:
Порядок выполнения не тот, который хотелось бы иметь...
Разъясняю: я бы хотел сделать так, чтобы после нахождения фрагмента скрипт останавливался, но перед остановкой он делает ещё один цикл, в следствии чего скрипт выполняется бесконечно.
GETSCREEN
    IF_PICTURE_IN (213,380, 514,484, "file.bmp", -1, 100)
HALT
    ELSE
LCLICK(463, 150)
WAITMS(100)
    END_IF

Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (213,380, 514,484, "file.bmp", -1, 100)
   HALT
ELSE
   LCLICK(463, 150)
   WAITMS(100)
   // После выполнения паузы, скрипт пойдет на второй круг, пока не попадет в условие, в котором у тебя прописан HALT
END_IF
WAITMS(50)
Я не ду... Потому и не бу...