Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Findimage. Несколько одинаковых картинок
Fire73
сообщение 25.6.2019, 20:02
Сообщение #1


**

Neophyte
Сообщений: 34
Регистрация: 5.6.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.343
Возраст: 23



Ситуация, ищу на экране картинки SMS.bmp с помощью функции findimage, но на экране несколько одинаковых SMS.bmp. Нужно, чтобы скрипт выбрал именно вторую найденную картинку.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 25.6.2019, 20:38
Сообщение #2


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2399
Пользователь №: 18.746



Код
...
set #a FindImage (x, y x1, y1 (c:\SMS.bmp) %arr 2 60 2 15 abs)
move %arr[2 1] %arr[2 2] // навести курсор на вторую картинку
...


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fire73
сообщение 25.6.2019, 21:09
Сообщение #3


**

Neophyte
Сообщений: 34
Регистрация: 5.6.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.343
Возраст: 23



Цитата(Fors1k @ 25.6.2019, 21:38) *

Код
...
set #a FindImage (x, y x1, y1(c:\SMS.bmp) %arr 2 45 2 18 abs)
move %arr[2 1] %arr[2 2] // навести курсор на вторую картинку
...


бро, что-то не получается.
Надо чтобы функция заработала, при условии, что на экране будут 2 картинки одинаковые, только после этого он должен на 2 нажать:)

Если только одна картинка, то ждать появления второй
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 25.6.2019, 21:28
Сообщение #4


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2399
Пользователь №: 18.746



Цитата(Fire73 @ 25.6.2019, 21:09) *

Надо чтобы функция заработала, при условии, что на экране будут 2 картинки одинаковые, только после этого он должен на 2 нажать:)

Картинки появляются одна за одной? Или как?
Код
...
set #a FindImage (x, y x1, y1 (c:\SMS.bmp) %arr 2 60 2 15 abs)
if size(%arr) = 2  // на экране 2 одинаковые картинки
left %arr[2 1] %arr[2 2] // нажать на вторую
end_if
...


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 25.6.2019, 21:43
Сообщение #5


****

Apprentice
Сообщений: 233
Регистрация: 1.9.2012
Группа: Пользователи
Наличность: 1196
Пользователь №: 15.246
Возраст: 25



если left тогда сперва напиши move, а если без move тогда kleft
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 25.6.2019, 21:44
Сообщение #6


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2399
Пользователь №: 18.746



Цитата(nykep @ 25.6.2019, 21:43) *

если left тогда сперва напиши move, а если без move тогда kleft

Зачем?


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 25.6.2019, 21:46
Сообщение #7


****

Apprentice
Сообщений: 233
Регистрация: 1.9.2012
Группа: Пользователи
Наличность: 1196
Пользователь №: 15.246
Возраст: 25



Цитата(Fors1k @ 25.6.2019, 21:44) *

Зачем?

ну так команда left не перемещает курсор, а просто кликает в том месте где находится мышка, или это только у меня так?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 25.6.2019, 21:48
Сообщение #8


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2399
Пользователь №: 18.746



Цитата(nykep @ 25.6.2019, 21:46) *

ну так команда left не перемещает курсор, а просто кликает

Цитата(Fire73 @ 25.6.2019, 21:09) *

после этого он должен на 2 нажать

Просили только нажать. Зачем перемещать?


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 25.6.2019, 21:53
Сообщение #9


****

Apprentice
Сообщений: 233
Регистрация: 1.9.2012
Группа: Пользователи
Наличность: 1196
Пользователь №: 15.246
Возраст: 25



Код
...
set #a FindImage (x, y x1, y1 (c:\SMS.bmp) %arr 2 60 2 15 abs)
if size(%arr) = 2  // на экране 2 одинаковые картинки
left %arr[2 1] %arr[2 2] // нажать на вторую
end_if
...

Мне кажется этого может быть не достаточно, ведь он определяет очередность в том же порядке в каком и производит поиск - слева направо вниз, если первая картинка в центре экрана, а потом вторая появится слева вверху то он посчитает ее первой, а не второй вроде так?

Цитата(Fors1k @ 25.6.2019, 21:48) *

Просили только нажать. Зачем перемещать?

ну, ты в одном случае пишешь просто move %arr , а в другом только left %arr, разве чтоб нажать на картинку на нее не надо навести курсор?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 25.6.2019, 22:02
Сообщение #10


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2399
Пользователь №: 18.746



Цитата(nykep @ 25.6.2019, 21:53) *

Мне кажется этого может быть не достаточно, ведь он определяет очередность в том же порядке в каком и производит поиск - слева направо вниз, если первая картинка в центре экрана, а потом вторая появится слева вверху то он посчитает ее первой, а не второй вроде так?

Верно. В таком случае нужно будет дополнить скрипт. Но автор до сих пор так и не говорит как именно появляются картинки.
Цитата(nykep @ 25.6.2019, 21:53) *

разве чтоб нажать на картинку на нее не надо навести курсор?

Нет, это не нужно.


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 25.6.2019, 22:08
Сообщение #11


****

Apprentice
Сообщений: 233
Регистрация: 1.9.2012
Группа: Пользователи
Наличность: 1196
Пользователь №: 15.246
Возраст: 25



странно, у меня такое никогда не работало, какие бы координаты я не писал в left, он всегда кликает в текущее положение курсора
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 25.6.2019, 22:24
Сообщение #12


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2399
Пользователь №: 18.746



Код
set #a FindImage (x, y x1, y1 (c:\SMS.bmp) %a 2 60 2 15 abs)
if size(%a) = 1
    while size(%b) != 2
      set #a FindImage (x, y x1, y1 (c:\SMS.bmp) %b 2 60 2 15 abs)
    end_while
  if %a[1] = %b[1]
      left %b[2 1] %b[2 2]
    else
      left %b[1 1] %b[1 2]
  end_if
end_if


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 25.6.2019, 22:29
Сообщение #13


****

Apprentice
Сообщений: 233
Регистрация: 1.9.2012
Группа: Пользователи
Наличность: 1196
Пользователь №: 15.246
Возраст: 25



Цитата(Fors1k @ 25.6.2019, 22:24) *

Код
set #a FindImage (x, y x1, y1 (c:\SMS.bmp) %a 2 60 2 15 abs)
if size(%a) = 1
    while size(%b) != 2
      set #a FindImage (x, y x1, y1 (c:\SMS.bmp) %b 2 60 2 15 abs)
    end_while
  if %a[1 1] = %b[1 1]
      left %b[2 1] %b[2 2]
    else
      left %b[1 1] %b[1 2]
  end_if
end_if


таким образом он никогда не найдет вторую картинку, поскольку будет входить в if только если на экране 1 картинка. А нет, вроде верно ))
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 25.6.2019, 23:29
Сообщение #14


****

Apprentice
Сообщений: 233
Регистрация: 1.9.2012
Группа: Пользователи
Наличность: 1196
Пользователь №: 15.246
Возраст: 25



Кажется там все же надо добавить координату Y в условие
if %a[1 1] = %b[1 1] and %a[1 2] = %b[1 2]
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 25.6.2019, 23:50
Сообщение #15


****

Apprentice
Сообщений: 233
Регистрация: 1.9.2012
Группа: Пользователи
Наличность: 1196
Пользователь №: 15.246
Возраст: 25



блин или я че то не понимаю или все таки это условие не даст нужного результата
Код

if %a[1 1] = %b[1 1]
      left %b[2 1] %b[2 2]
    else
      left %b[1 1] %b[1 2]
  end_if

Он же все равно нажмет на первую картинку если она находится ниже. Че то я совсем запутался больше не хочу думать ))
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 25.6.2019, 23:53
Сообщение #16


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2399
Пользователь №: 18.746



Цитата(nykep @ 25.6.2019, 23:50) *

блин или я че то не понимаю или все таки это условие не даст нужного результата
Код

if %a[1] = %b[1]
      left %b[2 1] %b[2 2]
    else
      left %b[1 1] %b[1 2]
  end_if

Он же все равно нажмет на первую картинку если она находится ниже

Условие такое: когда появилась вторая, нажать не на ту, которая появилась раньше.


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 25.6.2019, 23:59
Сообщение #17


****

Apprentice
Сообщений: 233
Регистрация: 1.9.2012
Группа: Пользователи
Наличность: 1196
Пользователь №: 15.246
Возраст: 25



кажется доперло, но если координату Y не вписать и вторая картинка появится сверху прям над первой то есть координаты Х совпадут то нажмет он на нижнюю которая появилась раньше верно?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 26.6.2019, 0:01
Сообщение #18


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2399
Пользователь №: 18.746



Условие проверяет обе координаты


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 26.6.2019, 0:04
Сообщение #19


****

Apprentice
Сообщений: 233
Регистрация: 1.9.2012
Группа: Пользователи
Наличность: 1196
Пользователь №: 15.246
Возраст: 25



Цитата(Fors1k @ 26.6.2019, 0:01) *

Условие проверяет обе координаты

а почему у меня в цитате if %a[1 1] = %b[1 1] ты уже переписал что ли а я не заметил
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 18.4.2024, 13:04
Designed by Nickostyle