Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Помогите облегчить скрипт.

Страниц (1): [1]
 

1. Shpilim1991 - 18 Сентября, 2014 - 13:20:28 - перейти к сообщению
Играю в игруху на андроид эмуляторе (в 3 окна). Для каждого окна свой скрипт со своим фрагментом экрана для поиска. Запускаю 2 штуки и эмули уже подлагивают (фпс падает). Без кибора они работают как часики. Попробовал сделать разные папки с нарезками для каждого скрипта, попробовал вставить микропаузы, не помогло. Подскажите как облегчить сиё детище.
По которому ресурсу проседает комп тоже неизвестно, в диспетчере ресурсы на половине. Благодарочка!



Превысил лимит. Качайте
тут (Отобразить)
2. Kibor - 19 Сентября, 2014 - 00:34:00 - перейти к сообщению
 Shpilim1991 пишет:
как облегчить сиё детище

использовать поиск не на экране а в окне по указателям.
использовать рис не 400 на 200

не совсем ясна логика поиска двух картинок если надо только одна
 Цитата:
if(findimage(2, #bb[0][0], 0, #PosX_0[0], #PosY_0[0],500, 0, 1000, 550, -1)==1){mouse(LEFT,PosX_0[0]+500, PosY_0[0]);}


разве только что надо отследить наличие одной тока из возможных двух.
иначе используйте поиск
 Цитата:
if(findimage(1, #bb[0][0], 0, #PosX_0, #PosY_0,500, 0, 1000, 550, -1)==1){mouse(LEFT,PosX_0+500, PosY_0);}


так же почитайте тему(для просмотра ссылки Вам необходимо авторизоваться) для этого случая
3. Shpilim1991 - 19 Сентября, 2014 - 03:39:50 - перейти к сообщению
 Kibor пишет:
 Shpilim1991 пишет:
как облегчить сиё детище

использовать поиск не на экране а в окне по указателям.
использовать рис не 400 на 200

не совсем ясна логика поиска двух картинок если надо только одна
 Цитата:
if(findimage(2, #bb[0][0], 0, #PosX_0[0], #PosY_0[0],500, 0, 1000, 550, -1)==1){mouse(LEFT,PosX_0[0]+500, PosY_0[0]);}


разве только что надо отследить наличие одной тока из возможных двух.
иначе используйте поиск
 Цитата:
if(findimage(1, #bb[0][0], 0, #PosX_0, #PosY_0,500, 0, 1000, 550, -1)==1){mouse(LEFT,PosX_0+500, PosY_0);}


так же почитайте тему(для просмотра ссылки Вам необходимо авторизоваться) Благодарочка! Я кстати нашел основную причину, из-за отсутствия микропауз между действиями. Я их ставил но не между каждым действием. 50 мсек между 3-4 действиями(так глючило). ПОставил 10-20 мсек между каждым, комп перестал глючить. Еще раз благодарочка.
для этого случая
4. Shpilim1991 - 19 Сентября, 2014 - 08:02:00 - перейти к сообщению
Хотелось бы ещё вопросик.

Если мне нужно сканировать динамичный экран на 25 возможных его вариантов.
Сут динамики в игре такова. Нажал кнопку- пошла динамика (до 10 секунд) - завмерла.
Динамику сканировать не нужно, игра всё время приходит к какой-то картинке с парой динамичных пикселей на экране.(о них говорить не стоит так как варианты действий = статические)

Я сообразил поиск по 25 вариантам таким образом:

F:
Ищем картинку 1 - выполняем действие ;
sleep(50);
...........
sleep(50);
Ищем картинку 2 - выполняем действие ;
goto F;

Первое, это если между действиями фактическая задержка равна почти нулю, то он ждёт повтора цикла = простой. Ставлю меньше - жрёт больше ресурса = меньше окон.

В итоге что получаеться, процессор всё это время сканирует экран с интервалом 50 мсек и ищет выполнение одного из условий.

Основная цель вопроса - минимизация ресурсозатраты, так как ресурсы = окна, окна = профит.

Имея достаточно под рукой "список всех комманд".

Есть картинки которые исполюзуються раз в 10 - 15 минут, но если вдруг клиент кританёт, а цикл будет реально их проверять раз в 10-15 минут то будет простой каждые пол часа по 10-15 минут т.к. критует часто.

Логические последовательности картинок так же не допустимы. Нужно тупо сканить на 25 изображений ежесекундно, чтобы ежесекундно принимать решения.

Суть вопроса: Какой логикой и какими коммандами мне сканировать экран на те 25 картинок максимально еффективно с точки зрения ресурсоёмкости?
5. Kibor - 19 Сентября, 2014 - 08:22:22 - перейти к сообщению
делать скрин и искать в нем(для просмотра ссылки Вам необходимо авторизоваться)
6. Shpilim1991 - 19 Сентября, 2014 - 08:26:56 - перейти к сообщению
[quote=Kibor]делать скрин и искать в нем(для просмотра ссылки Вам необходимо авторизоваться) /quote]

Тоесть делать 25 скринов в секунду выйдет еффективней? Попробуем!

Насчет проги. Открівают Кибор-графика - Сtr+shift+S на клиент отметил галочку "окно" и почему-то кибор не можєт сканировать изображение с єтого клиента. Сканирует только один раз и все остальные "обновить" дают одну и туже картинку. Это для привязки к окну. Потому, как сейчас я сканирую 4 зоны рабочего стола, в которых разместил 4 клиента.
(для просмотра ссылки Вам необходимо авторизоваться)
Eto VirtualMachine Player на базе Virtualbox. Я юзаю его для управления андроидом.
7. Kibor - 19 Сентября, 2014 - 08:29:42 - перейти к сообщению
делать 1 скрин перед всеми поисками findimage
в теме написано...
по поводу скрина графики не знаю

Powered by ExBB FM 1.0 Final