Zireael |
Отправлено: 12 Мая, 2019 - 18:18:05
|
Эксперт
Покинул форум
Сообщений всего: 4461
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: поставил твою полоску и 130 разбежность
Такую разбежность я нигде в коде не использовал. Только для подбора в фильтре динамики.
Цитата: как будто вместо неё стал шар находить и там где он
Я же не просто так не выкладывал весь код сразу. Вернитесь к началу темы, там есть код чтобы подобрать нужные параметры для полоски и шарика, отдельно. Сначала подобрать параметры чтобы полоска находилась, потом шарик. Что и в каких координатах нашлось можно выводить в textout или наводить курсор где нашлось, тогда сразу будет видно. Уже потом вместе тестить.
Цитата: Может это из за того, что полоска иногда вообще пропадает
Можно изменить код, чтобы дожидался полоски. Но, это на крайний случай, к тому же видео надо, на котором можно тестить и где видно что она пропадает. |
|
|
Zireael |
Отправлено: 16 Мая, 2019 - 01:42:35
|
Эксперт
Покинул форум
Сообщений всего: 4461
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: можете скинуть полный код на полоску и шар
Потестить можно на этом:
code (Отобразить)CODE:int coord2[4]={965, 549, 1088, 563} // область поиска
int Image_0[3][12]; // массив для картинки 3*12
loadimage (#Image_0[0][0], "D:\Kibor2\шар.bmp"); // загрузка картинки
int r1=50; // разбежность
int Image_1[1][7]; // массив для картинки 1*7
loadimage (#Image_1[0][0], "D:\Kibor2\Полоса.bmp");
int r2=70; // разбежность для полоски
int PosX1, PosX2, PosY1, PosY2;
loop()
{
if(findimage(1, #Image_0[0][0], -1, #PosX1, #PosY1, coord2[0], coord2[1], coord2[2], coord2[3], r1,r1,r1,r1,r1,r1,100,1, -1))
{
textbkcolor(255, 65280);
textout(0, PosX1+coord2[0], PosY1-20+coord2[1], format(PosX1), 1); // выведет координату X картинки
}
else
{
textbkcolor(65280, 255);
textout(0, coord2[0],coord2[1]-60, "Шар не найден", 1); //если не нашлась картинка
}
if(findimage(1, #Image_1[0][0], -1, #PosX2, #PosY2, coord2[0], coord2[1], coord2[2], coord2[3], r2,r2,r2,r2,r2,r2,100,1, -1))
{
textbkcolor(255, 65280);
textout(1, PosX2+coord2[0], PosY2+20+coord2[1], format(PosX2), 1); // выведет координату X картинки
}
else
{
textbkcolor(65280, 255);
textout(1, coord2[0], coord2[1]-40, "Полоска не найдена", 1); //если не нашлась картинка
}
sleep(1);
}
Если картинки найдены, то выводит координату X.
Когда шар перекрывает полоску, то должно писать что полоска не найдена. В этом месте надо дописать нажатие нужной клавиши. |
|
|
vugayage |
Отправлено: 16 Мая, 2019 - 15:44:07
|
Прохожий
Покинул форум
Сообщений всего: 7
Дата рег-ции: Май 2019
Репутация: 0
|
Разобрался, осталось только на "идел" его сделать
Пока никак не хочет
Zireael пишет: Цитата: можете скинуть полный код на полоску и шар
Потестить можно на этом:
code (Отобразить)CODE:int coord2[4]={965, 549, 1088, 563} // область поиска
int Image_0[3][12]; // массив для картинки 3*12
loadimage (#Image_0[0][0], "D:\Kibor2\шар.bmp"); // загрузка картинки
int r1=50; // разбежность
int Image_1[1][7]; // массив для картинки 1*7
loadimage (#Image_1[0][0], "D:\Kibor2\Полоса.bmp");
int r2=70; // разбежность для полоски
int PosX1, PosX2, PosY1, PosY2;
loop()
{
if(findimage(1, #Image_0[0][0], -1, #PosX1, #PosY1, coord2[0], coord2[1], coord2[2], coord2[3], r1,r1,r1,r1,r1,r1,100,1, -1))
{
textbkcolor(255, 65280);
textout(0, PosX1+coord2[0], PosY1-20+coord2[1], format(PosX1), 1); // выведет координату X картинки
}
else
{
textbkcolor(65280, 255);
textout(0, coord2[0],coord2[1]-60, "Шар не найден", 1); //если не нашлась картинка
}
if(findimage(1, #Image_1[0][0], -1, #PosX2, #PosY2, coord2[0], coord2[1], coord2[2], coord2[3], r2,r2,r2,r2,r2,r2,100,1, -1))
{
textbkcolor(255, 65280);
textout(1, PosX2+coord2[0], PosY2+20+coord2[1], format(PosX2), 1); // выведет координату X картинки
}
else
{
textbkcolor(65280, 255);
textout(1, coord2[0], coord2[1]-40, "Полоска не найдена", 1); //если не нашлась картинка
}
sleep(1);
}
Если картинки найдены, то выводит координату X.
Когда шар перекрывает полоску, то должно писать что полоска не найдена. В этом месте надо дописать нажатие нужной клавиши. |
|
|
Limbaugh |
Отправлено: 17 Мая, 2019 - 19:06:48
|
Участник
Покинул форум
Сообщений всего: 86
Дата рег-ции: Май 2019
Репутация: 0
|
Zireael пишет: Цитата: можете скинуть полный код на полоску и шар
Потестить можно на этом:
code (Отобразить)CODE:int coord2[4]={965, 549, 1088, 563} // область поиска
int Image_0[3][12]; // массив для картинки 3*12
loadimage (#Image_0[0][0], "D:\Kibor2\шар.bmp"); // загрузка картинки
int r1=50; // разбежность
int Image_1[1][7]; // массив для картинки 1*7
loadimage (#Image_1[0][0], "D:\Kibor2\Полоса.bmp");
int r2=70; // разбежность для полоски
int PosX1, PosX2, PosY1, PosY2;
loop()
{
if(findimage(1, #Image_0[0][0], -1, #PosX1, #PosY1, coord2[0], coord2[1], coord2[2], coord2[3], r1,r1,r1,r1,r1,r1,100,1, -1))
{
textbkcolor(255, 65280);
textout(0, PosX1+coord2[0], PosY1-20+coord2[1], format(PosX1), 1); // выведет координату X картинки
}
else
{
textbkcolor(65280, 255);
textout(0, coord2[0],coord2[1]-60, "Шар не найден", 1); //если не нашлась картинка
}
if(findimage(1, #Image_1[0][0], -1, #PosX2, #PosY2, coord2[0], coord2[1], coord2[2], coord2[3], r2,r2,r2,r2,r2,r2,100,1, -1))
{
textbkcolor(255, 65280);
textout(1, PosX2+coord2[0], PosY2+20+coord2[1], format(PosX2), 1); // выведет координату X картинки
}
else
{
textbkcolor(65280, 255);
textout(1, coord2[0], coord2[1]-40, "Полоска не найдена", 1); //если не нашлась картинка
}
sleep(1);
}
Если картинки найдены, то выводит координату X.
Когда шар перекрывает полоску, то должно писать что полоска не найдена. В этом месте надо дописать нажатие нужной клавиши.
Так можно сделать, что бы он нажимал пробел в определенных координатах? просто с полоской никак, уже много раз пробовал фильтровать динамику, но не получается
(Добавление)
Zireael пишет: Цитата: можете скинуть полный код на полоску и шар
Потестить можно на этом:
code (Отобразить)CODE:int coord2[4]={965, 549, 1088, 563} // область поиска
int Image_0[3][12]; // массив для картинки 3*12
loadimage (#Image_0[0][0], "D:\Kibor2\шар.bmp"); // загрузка картинки
int r1=50; // разбежность
int Image_1[1][7]; // массив для картинки 1*7
loadimage (#Image_1[0][0], "D:\Kibor2\Полоса.bmp");
int r2=70; // разбежность для полоски
int PosX1, PosX2, PosY1, PosY2;
loop()
{
if(findimage(1, #Image_0[0][0], -1, #PosX1, #PosY1, coord2[0], coord2[1], coord2[2], coord2[3], r1,r1,r1,r1,r1,r1,100,1, -1))
{
textbkcolor(255, 65280);
textout(0, PosX1+coord2[0], PosY1-20+coord2[1], format(PosX1), 1); // выведет координату X картинки
}
else
{
textbkcolor(65280, 255);
textout(0, coord2[0],coord2[1]-60, "Шар не найден", 1); //если не нашлась картинка
}
if(findimage(1, #Image_1[0][0], -1, #PosX2, #PosY2, coord2[0], coord2[1], coord2[2], coord2[3], r2,r2,r2,r2,r2,r2,100,1, -1))
{
textbkcolor(255, 65280);
textout(1, PosX2+coord2[0], PosY2+20+coord2[1], format(PosX2), 1); // выведет координату X картинки
}
else
{
textbkcolor(65280, 255);
textout(1, coord2[0], coord2[1]-40, "Полоска не найдена", 1); //если не нашлась картинка
}
sleep(1);
}
Если картинки найдены, то выводит координату X.
Когда шар перекрывает полоску, то должно писать что полоска не найдена. В этом месте надо дописать нажатие нужной клавиши.
Вот что получилось - (для просмотра ссылки Вам необходимо авторизоваться) (Добавление)
Может все таки из за того, что полоска исчезает |
|
|
Zireael |
Отправлено: 18 Мая, 2019 - 02:12:40
|
Эксперт
Покинул форум
Сообщений всего: 4461
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: Может все таки из за того, что полоска исчезает
Ну вот тут на видео видно что они исчезает.
code (Отобразить)CODE:int coord2[4]={964, 549, 1088, 564} // область поиска
int Image_0[3][12]; // массив для картинки 3*12
loadimage (#Image_0[0][0], "D:\Kibor2\шар.bmp"); // загрузка картинки
int r1=50; // разбежность
int Image_1[1][7]; // массив для картинки 1*7
loadimage (#Image_1[0][0], "D:\Kibor2\Полоса.bmp");
int r2=70; // разбежность для полоски
int PosX1, PosX2, PosY1, PosY2;
loop()
{
// ждать пока полоска не появится
while(findimage(1, #Image_1[0][0], -1, #PosX2, #PosY2, coord2[0], coord2[1], coord2[2], coord2[3], r2,r2,r2,r2,r2,r2,100,1, -1)==0)
{
textbkcolor(65280, 255);
textout(1, coord2[0], coord2[1]-40, "Полоска не найдена", 1); //если не нашлась полоска
sleep(1);
}
PosX1=PosX2-1;
textbkcolor(255, 65280);
textout(1, PosX2+coord2[0], PosY2+20+coord2[1], format(PosX2), 1); // выведет координату X полоски
while(PosX1<PosX2) // пока шар не дойдёт до полоски
{
if(findimage(1, #Image_0[0][0], -1, #PosX1, #PosY1, coord2[0], coord2[1], coord2[2], coord2[3], r1,r1,r1,r1,r1,r1,100,1, -1))
{
textbkcolor(255, 65280);
textout(0, PosX1+coord2[0], PosY1-20+coord2[1], format(PosX1), 1); // выведет координату X шара
}
else
{
textbkcolor(65280, 255);
textout(0, coord2[0],coord2[1]-60, "Шар не найден", 1); //если не нашёлся шар
}
sleep(1);
}
sleep(1);
} |
|
|
vugayage |
Отправлено: 18 Мая, 2019 - 03:50:02
|
Прохожий
Покинул форум
Сообщений всего: 7
Дата рег-ции: Май 2019
Репутация: 0
|
После некоторых попыток, сделал акцент на -не видит шар-, а не полоску.
Когда шар приближается к полоске, он перекрывается и так ставится четче кей32.
Zireael пишет: Цитата: Может все таки из за того, что полоска исчезает
Ну вот тут на видео видно что они исчезает.
code (Отобразить)CODE:int coord2[4]={964, 549, 1088, 564} // область поиска
int Image_0[3][12]; // массив для картинки 3*12
loadimage (#Image_0[0][0], "D:\Kibor2\шар.bmp"); // загрузка картинки
int r1=50; // разбежность
int Image_1[1][7]; // массив для картинки 1*7
loadimage (#Image_1[0][0], "D:\Kibor2\Полоса.bmp");
int r2=70; // разбежность для полоски
int PosX1, PosX2, PosY1, PosY2;
loop()
{
// ждать пока полоска не появится
while(findimage(1, #Image_1[0][0], -1, #PosX2, #PosY2, coord2[0], coord2[1], coord2[2], coord2[3], r2,r2,r2,r2,r2,r2,100,1, -1)==0)
{
textbkcolor(65280, 255);
textout(1, coord2[0], coord2[1]-40, "Полоска не найдена", 1); //если не нашлась полоска
sleep(1);
}
PosX1=PosX2-1;
textbkcolor(255, 65280);
textout(1, PosX2+coord2[0], PosY2+20+coord2[1], format(PosX2), 1); // выведет координату X полоски
while(PosX1<PosX2) // пока шар не дойдёт до полоски
{
if(findimage(1, #Image_0[0][0], -1, #PosX1, #PosY1, coord2[0], coord2[1], coord2[2], coord2[3], r1,r1,r1,r1,r1,r1,100,1, -1))
{
textbkcolor(255, 65280);
textout(0, PosX1+coord2[0], PosY1-20+coord2[1], format(PosX1), 1); // выведет координату X шара
}
else
{
textbkcolor(65280, 255);
textout(0, coord2[0],coord2[1]-60, "Шар не найден", 1); //если не нашёлся шар
}
sleep(1);
}
sleep(1);
} (Отредактировано автором: 18 Мая, 2019 - 03:53:56) |
|
|
Limbaugh |
Отправлено: 18 Мая, 2019 - 20:56:26
|
Участник
Покинул форум
Сообщений всего: 86
Дата рег-ции: Май 2019
Репутация: 0
|
Zireael пишет: Цитата: Правильно ли Я сделал -
Нет. Как минимум есть лишняя закрывающая скобка }. И неправильная логика.
Код, который я скинул последним, работает нормально или нет?
Да, он пишет , что не нашел полоску только тогда, когда по полоске шарик проходит, потому что он её закрывает, а так всегда находит |
|
|
|