Limbaugh |
Отправлено: 07 Мая, 2019 - 14:59:20
|
Участник
Покинул форум
Сообщений всего: 86
Дата рег-ции: Май 2019
Репутация: 0
|
Zireael пишет: Цитата: Если шарик в 10 пикселях от полоски, то должно выводить ++++, иначе ----.
Так должно быть. Т. е. ++++ только когда шарик около полоски.
Да, но странно как то получается, нужно тестить уже полноценный, что дальше? |
|
|
Limbaugh |
Отправлено: 07 Мая, 2019 - 15:05:24
|
Участник
Покинул форум
Сообщений всего: 86
Дата рег-ции: Май 2019
Репутация: 0
|
Zireael пишет: Цитата: но странно как то получается
Что странного? Сначала надо это сделать чтобы работало как надо, без ложных срабатываний.
Ну он плюсы пишет не только возле полоски, то есть не нашел, то - постоянно, если нашел, то + так и будет , пока снова не дойдет до полоски и не проверит , вроде так
(Добавление)
Так же пришлось ставить больше разбежность, уже на полоску 160 на шар 130 и как то плохо ищет, 2 минуты плюсы , потом минус стал и плюс редко очень появляется |
|
|
Limbaugh |
Отправлено: 07 Мая, 2019 - 15:16:43
|
Участник
Покинул форум
Сообщений всего: 86
Дата рег-ции: Май 2019
Репутация: 0
|
Zireael пишет: Тестите отдельно и подбирайте параметры поиска.
Чтобы шарик находился всегда, если он есть на экране.
Полоска должна находится всегда, если она есть на экране и не перекрыта шариком.
Когда это будет, тогда можно и дальше что-то делать.
Цитата: Так же пришлось ставить больше разбежность, уже на полоску 160 на шар 130
Это слишком много, сделайте другие картинки.
Это скорей всего из за полоски, поскольку у неё картинка динамичная, Я как то случайно сделал скрин и полоска на скрине вообще исчезла, она у неё бока прыгают туда сюда, то есть сужается она и наоборот |
|
|
Limbaugh |
Отправлено: 07 Мая, 2019 - 15:39:08
|
Участник
Покинул форум
Сообщений всего: 86
Дата рег-ции: Май 2019
Репутация: 0
|
Zireael пишет: Цитата: она у неё бока прыгают туда сюда, то есть сужается она и наоборот
Ну так и надо делать картинку середины полоски, а не краёв, которые мигают.
Сделал вроде, плюс на полоске а на остальном минус и так каждый раз, пока все работает
(Добавление)
Хотя одно но, + ставится тогда, когда шарик выехал за полоску уже , а не перед ней
(Добавление)
Вот что получилось
Code (Отобразить)CODE:int Image_0[23][21]; // массив для картинки шарика (исправить размеры массива на нужный)
loadimage (#Image_0[0][0], "C:\Users\Limbaugh\Desktop\Au2RLBOT\ball.bmp"); // указать путь
int coord2[4]={953, 759, 1170, 784} // область поиска
int r1=40; // разбежность для шарика
int Image_1[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);
}
}
}
} |
|
|
Limbaugh |
Отправлено: 07 Мая, 2019 - 18:10:52
|
Участник
Покинул форум
Сообщений всего: 86
Дата рег-ции: Май 2019
Репутация: 0
|
Zireael пишет: Цитата: она у неё бока прыгают туда сюда, то есть сужается она и наоборот
Ну так и надо делать картинку середины полоски, а не краёв, которые мигают.
Что дальше ? |
|
|
Zireael |
Отправлено: 08 Мая, 2019 - 07:40:23
|
Эксперт
Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: Сделал вроде
Цитата: loadimage (#Image_0[0][0], "C:\Users\Limbaugh\Desktop\Au2RLBOT\ball.bmp" ); // указать путь
loadimage (#Image_0[0][0], "C:\Users\Limbaugh\Desktop\Au2RLBOT\poloska.bmp" );
И картинки загружаются в один и тот же массив. Ещё тестите, только исправьте
Цитата: loadimage (#Image_1[0][0], "C:\Users\Limbaugh\Desktop\Au2RLBOT\poloska.bmp" );
Цитата: Хотя одно но, + ставится тогда, когда шарик выехал за полоску уже , а не перед ней
Это тоже можно проверять.
Цитата: Что дальше ?
Это в начало скрипта:
Цитата: int Image_0[23][21]; // массив для картинки шарика (исправить размеры массива на нужный)
loadimage (#Image_0[0][0], "C:\Users\Limbaugh\Desktop\Au2RLBOT\ball.bmp" ); // указать путь
int coord2[4]={953, 759, 1170, 784} // область поиска
int r1=40; // разбежность для шарика
int Image_1[1][23];
loadimage (#Image_1[0][0], "C:\Users\Limbaugh\Desktop\Au2RLBOT\poloska.bmp" );
int r2=40; // разбежность для полоски
int PosX1, PosX2, PosY;
Это в конец скрипта:
Цитата: function find_image(int timeout)
{
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)) // поиск полоски
{
looptime(timeout) // ждём когда шарик дойдёт до полоски
{
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(PosX1+10>PosX2) // +10 подобрать нужное значение
{
textbkcolor(255, 65280); // можно убрать
textout(1, coord2[0]+PosX2, coord2[1]-15, "++++", 1); // можно убрать
// тут нажатие нужной клавиши когда шарик около полоски
break;
}
else // можно убрать
{ // можно убрать
textbkcolor(65280, 255); // можно убрать
textout(1, coord2[0]+PosX2, coord2[1]-15, "----", 1); // можно убрать
} // можно убрать
}
}
}
}
Перед этой строкой posX=coord[0]; добавить вызов функции, которая будет ждать когда шарик дойдет до полоски
CODE:find_image(2000); // в скобках время, в течении которого ожидается когда шарик дойдёт до полоски
posX=coord[0];
Примерно так, код не проверял на работоспособность.(Отредактировано автором: 08 Мая, 2019 - 07:50:22) |
|
|
Limbaugh |
Отправлено: 08 Мая, 2019 - 16:21:01
|
Участник
Покинул форум
Сообщений всего: 86
Дата рег-ции: Май 2019
Репутация: 0
|
Он в общем то жмет, но не на ту оценку, что мне нужно и он почему то жмет как Я и говорил сзади за полоской , если ставить - if(PosX1+28>PosX2) вместо 10 , 28 , то он перед полоской жмет, но далеко от неё, все значения перепробовал, как уменьшить расстояния от шарика до полоски, слишком далеко жмет (Отредактировано автором: 08 Мая, 2019 - 16:23:52) |
|
|
|