Приветствую!
Есть рыба она в игре видна, есть брызги от неё(чисто белый цвет)!
Есть так же разное время суток, соответственно цвет пикселя "по рыбе" бесполезен ибо меняется каждые 15-30 мин. + погодные условия (дождь, туман)! Вариант с bmp аналогично не подходит. У меня остаются "брызги" как вариант, но это массив из белого цвета, разной "формы"!
Покопался на форуме, не нашел тему про направление движения по горизонтали, рыбка плавает как вздумается, лево потом право, пять секунд и опять на лево! То есть нужно клацать кнопки Ф и В, в зависимости куда начинает плыть!
В общем ВОТЬ, поймете после просмотра видео (с тайм кодом на процесс) [youtube=Рыбалка!](для просмотра ссылки Вам необходимо авторизоваться) /youtube]
(Добавление)
Сама рыбка
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]
1. SEPOR - 02 Апреля, 2021 - 04:01:43 - перейти к сообщению
2. KevinS - 02 Апреля, 2021 - 10:34:08 - перейти к сообщению
на визуале такое не сделать.
3. Kibor - 03 Апреля, 2021 - 02:49:26 - перейти к сообщению
Пример как искать сложные объекты на примере того указанного видео рыбалки.
CODE:
int x[100], y[100];
int xx, yy;
int rd=10;
int r=30;
int ri=40, pi=70;
int PX, PY;
int color[2]={11837585, 7758419};
int kol[2]={2, 1};
int Image_0[50][50];
int Zx1, Zy1, Zx2, Zy2;
loadimage (#Image_0[0][0], "C:\12345.bmp");
int SCREEN[1000][1000];
win w=window (-1, "MozillaWindowClass", -1);
loop()
{
resettextout(0);
textbkcolor (65535,255);
screen (#SCREEN[0][0], 46, 295, 877, 500, w);
finddynamic(0, #x[0], #y[0], 0, 0, 0, 0, 46, 295, 877, 500, 0, w);//Сохраняем изображение экрана
sleep(50);// пауза для обновления анимированного изображения в игре.
int k=finddynamic(100, #x[0], #y[0], 5, 5, 50, 50, 46, 295, 877, 500, rd, w);//сравниваем с сохраненным изображением и ищем изменившиеся объекты, записывая их координаты.
for (int n=0; n<k; n++)
{
Zx1=x[n]-35; Zy1=y[n]-35; Zx2=x[n]+35; Zy2=y[n]+35;
if (Zx1>0 && Zy1>0 && Zx2<700 && Zy2<700)
{
if (findheapcolor(1, #color[0], #kol[0], 2, 2, #xx, #yy, 30, 30, 0, 0, Zx1, Zy1, Zx2, Zy2, r, r, r, r, r, r, #SCREEN[0][0])==1)
{
if (findimage(1, #Image_0[0][0], -1, #PX, #PY, Zx1, Zy1, Zx2, Zy2, ri, ri, ri, ri, ri, ri, pi, 1, #SCREEN[0][0])==1)
{
textout(n, w.leftclient+46+x[n]-35+PX, w.topclient+295+y[n]-35+PY, "РЫБА", 0);
}
}
}
}
}
int xx, yy;
int rd=10;
int r=30;
int ri=40, pi=70;
int PX, PY;
int color[2]={11837585, 7758419};
int kol[2]={2, 1};
int Image_0[50][50];
int Zx1, Zy1, Zx2, Zy2;
loadimage (#Image_0[0][0], "C:\12345.bmp");
int SCREEN[1000][1000];
win w=window (-1, "MozillaWindowClass", -1);
loop()
{
resettextout(0);
textbkcolor (65535,255);
screen (#SCREEN[0][0], 46, 295, 877, 500, w);
finddynamic(0, #x[0], #y[0], 0, 0, 0, 0, 46, 295, 877, 500, 0, w);//Сохраняем изображение экрана
sleep(50);// пауза для обновления анимированного изображения в игре.
int k=finddynamic(100, #x[0], #y[0], 5, 5, 50, 50, 46, 295, 877, 500, rd, w);//сравниваем с сохраненным изображением и ищем изменившиеся объекты, записывая их координаты.
for (int n=0; n<k; n++)
{
Zx1=x[n]-35; Zy1=y[n]-35; Zx2=x[n]+35; Zy2=y[n]+35;
if (Zx1>0 && Zy1>0 && Zx2<700 && Zy2<700)
{
if (findheapcolor(1, #color[0], #kol[0], 2, 2, #xx, #yy, 30, 30, 0, 0, Zx1, Zy1, Zx2, Zy2, r, r, r, r, r, r, #SCREEN[0][0])==1)
{
if (findimage(1, #Image_0[0][0], -1, #PX, #PY, Zx1, Zy1, Zx2, Zy2, ri, ri, ri, ri, ri, ri, pi, 1, #SCREEN[0][0])==1)
{
textout(n, w.leftclient+46+x[n]-35+PX, w.topclient+295+y[n]-35+PY, "РЫБА", 0);
}
}
}
}
}
4. SEPOR - 06 Апреля, 2021 - 02:15:50 - перейти к сообщению
Kibor пишет:
Пример как искать сложные объекты на примере того указанного видео рыбалки.
Спасибо, за разбор данной задачи! Буду пробовать, в игрушке! Напишу позже, работает али нет! Поиграю с пикселями!