Limbaugh |
Отправлено: 07 Мая, 2019 - 13:38:25
|
Участник
Покинул форум
Сообщений всего: 86
Дата рег-ции: Май 2019
Репутация: 0
|
Zireael пишет: Область поиска указывать ту же что для шарика.
Сделал так -
int Image_0[6][6]; // массив для картинки 6*6
loadimage (#Image_0[0][0], "C:\Users\Limbaugh\Desktop\Au2RLBOT\poloska.bmp"); // загрузка картинки
int coord2[4]={954, 760, 1169, 783} // область поиска
int r2=130; // разбежность
int PosX, PosY;
loop()
{
if(findimage(1, #Image_0[0][0], -1, #PosX, #PosY, coord2[0], coord2[1], coord2[2], coord2[3], r2,r2,r2,r2,r2,r2,100,1, -1))
textout(0, 300, 300, format(PosX), 1); // выведет координату X картинки
else textout(0, 300, 300, "---", 1); //если не нашлась картинка
sleep(100);
}
Вроде работает, то есть цифры идут, но такое ощущение как будто он не полоску синию (белую) ноходит, а шар, хотя стоит поиск картинки - полоска(Отредактировано автором: 07 Мая, 2019 - 13:40:17) |
|
|
Zireael |
Отправлено: 07 Мая, 2019 - 13:42:27
|
Эксперт
Покинул форум
Сообщений всего: 4461
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: int r2=130; // разбежность
Слишком много.
Цитата: int Image_0[6][6]; // массив для картинки 6*6
Какой размер картинки? |
|
|
Limbaugh |
Отправлено: 07 Мая, 2019 - 13:44:41
|
Участник
Покинул форум
Сообщений всего: 86
Дата рег-ции: Май 2019
Репутация: 0
|
Zireael пишет: Цитата: int r2=130; // разбежность
Слишком много.
Цитата: int Image_0[6][6]; // массив для картинки 6*6
Какой размер картинки?
1 x 23 пикселя , Я ту, что по центру белую взял и все(Отредактировано автором: 07 Мая, 2019 - 13:45:46) |
|
|
Limbaugh |
Отправлено: 07 Мая, 2019 - 13:52:36
|
Участник
Покинул форум
Сообщений всего: 86
Дата рег-ции: Май 2019
Репутация: 0
|
Zireael пишет: И как в массив 6*6 записывать 1 на 23?
Мда, простите , для шарика получается тоже нужно поменять под его размер
Вот так теперь для полоски -
CODE:int Image_0[1][23]; // массив для картинки 6*6
loadimage (#Image_0[0][0], "C:\Users\Limbaugh\Desktop\Au2RLBOT\poloska.bmp"); // загрузка картинки
int coord2[4]={954, 760, 1169, 783} // область поиска
int r2=40; // разбежность
int PosX, PosY;
loop()
{
if(findimage(1, #Image_0[0][0], -1, #PosX, #PosY, coord2[0], coord2[1], coord2[2], coord2[3], r2,r2,r2,r2,r2,r2,100,1, -1))
textout(0, 300, 300, format(PosX), 1); // выведет координату X картинки
else textout(0, 300, 300, "---", 1); //если не нашлась картинка
sleep(100);
}
Постоянно пишет 155 156(Отредактировано автором: 07 Мая, 2019 - 13:53:51) |
|
|
Zireael |
Отправлено: 07 Мая, 2019 - 14:02:48
|
Эксперт
Покинул форум
Сообщений всего: 4461
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Теперь, пробуйте:
code (Отобразить)CODE:int Image_0[6][6]; // массив для картинки шарика (исправить размеры массива на нужный)
loadimage (#Image_0[0][0], "D:\Kibor2\Шарик.bmp"); // указать путь
int coord2[4]={954, 760, 1169, 783} // область поиска
int r1=40; // разбежность для шарика
int Image_0[1][23];
loadimage (#Image_0[0][0], "C:\Users\Limbaugh\Desktop\Au2RLBOT\poloska.bmp");
int r2=40; // разбежность для полоски
int PosX1, PosX2, PosY;
loop()
{
if(findimage(1, #Image_0[0][0], -1, #PosX1, #PosY, coord2[0], coord2[1], coord2[2], coord2[3], r1,r1,r1,r1,r1,r1,100,1, -1))
{
if(findimage(1, #Image_1[0][0], -1, #PosX2, #PosY, coord2[0], coord2[1], coord2[2], coord2[3], r2,r2,r2,r2,r2,r2,100,1, -1))
{
//textbkcolor(255, 65279);
//textout(0, coord2[0]+PosX2, coord2[1]-35, format(PosX1)+" "+format(PosX2), 1);
if(PosX1+10>PosX2)
{
textbkcolor(255, 65280);
textout(1, coord2[0]+PosX2, coord2[1]-15, "++++", 1);
}
else
{
textbkcolor(65280, 255);
textout(1, coord2[0]+PosX2, coord2[1]-15, "----", 1);
}
}
}
}
Если шарик в 10 пикселях от полоски, то должно выводить ++++, иначе ----. |
|
|
Limbaugh |
Отправлено: 07 Мая, 2019 - 14:28:13
|
Участник
Покинул форум
Сообщений всего: 86
Дата рег-ции: Май 2019
Репутация: 0
|
Zireael пишет: Теперь, пробуйте:
code (Отобразить)CODE:int Image_0[6][6]; // массив для картинки шарика (исправить размеры массива на нужный)
loadimage (#Image_0[0][0], "D:\Kibor2\Шарик.bmp"); // указать путь
int coord2[4]={954, 760, 1169, 783} // область поиска
int r1=40; // разбежность для шарика
int Image_0[1][23];
loadimage (#Image_0[0][0], "C:\Users\Limbaugh\Desktop\Au2RLBOT\poloska.bmp");
int r2=40; // разбежность для полоски
int PosX1, PosX2, PosY;
loop()
{
if(findimage(1, #Image_0[0][0], -1, #PosX1, #PosY, coord2[0], coord2[1], coord2[2], coord2[3], r1,r1,r1,r1,r1,r1,100,1, -1))
{
if(findimage(1, #Image_1[0][0], -1, #PosX2, #PosY, coord2[0], coord2[1], coord2[2], coord2[3], r2,r2,r2,r2,r2,r2,100,1, -1))
{
//textbkcolor(255, 65279);
//textout(0, coord2[0]+PosX2, coord2[1]-35, format(PosX1)+" "+format(PosX2), 1);
if(PosX1+10>PosX2)
{
textbkcolor(255, 65280);
textout(1, coord2[0]+PosX2, coord2[1]-15, "++++", 1);
}
else
{
textbkcolor(65280, 255);
textout(1, coord2[0]+PosX2, coord2[1]-15, "----", 1);
}
}
}
}
Если шарик в 10 пикселях от полоски, то должно выводить ++++, иначе ----.
Поставил разбежность на шарик и полоску - 80 и пишет ++++ |
|
|
|