Специалист
Покинул форум
Сообщений всего: 231
Дата рег-ции: Март 2019
Репутация: 5
|
Написал функцию по типу как в визуальном редакторе для распознавания изображения в контроле игры (тестировал в игре Hustle Castle). Проблема в том, что если стоит графический движок Directx, изображение в контроле игры ищется хорошо, но если стоит OpenGL, то изображение не ищется вообще.
Можно было бы перейти на Directx и не париться, но проблема в том что в игре тогда слетают шрифты и они некорректно отображаются на экране в самой игре. Причем в обоих типах движков, изображение Google Play Store в контроле ищется на отлично.
Сама функция:
Code (Отобразить)
CODE://убрать комент ниже для загрузки картинки в игре hustle castle
/*
int Image_3[30][22];
loadimage (#Image_3[0][0], "C:\Image_2.bmp");
*/
int Image_4[34][31];
loadimage (#Image_4[0][0], "C:\Image_3.bmp");
win w_KIB;
int ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB;
int sx_KIB, sy_KIB;
start_();
findimage_(1,2000,0,500,1,#Image_4[0][0], 0, 0, ex_KIB, ey_KIB, 3, 98);
function findimage_(int klick, int p1, int p2, int p3, int kolvo, int #image, int xs, int ys, int xf, int yf, int r, int p){
int x[2],y[2];
pause(p1);
looptime(50000){
pause(10);
if (findimage(kolvo, #image[0][0], 3, #x[0], #y[0], xs, ys, xf, yf, r, r, r, r, r, r, p, 0, w_KIB)>0){
pause (p2);
if (klick==1){
mouse(LEFT, x[0]+sx_KIB, y[0]+sy_KIB);
return 2;
}
return 1;
}
}
}
/*
1 параметр (1 клик 0 поиск), 2,3,4 (паузы перед,после нахождения/клика),
5 - сколько искать картинок, 6-массив с картинкой, 7-8 = левый верхний угол,
9-10 правый нижний, 11 разбег, 12 - % совпадения
*/
function start_()
{
pause(1000);
int x, y;
getmouse(x, y);
w_KIB=getwindow(1, x, y);
ex_KIB=w_KIB.widthclient; ey_KIB=w_KIB.heightclient;
sx_KIB=w_KIB.leftclient; sy_KIB=w_KIB.topclient;
}
(закинуть картинки на диск C или куда удобно с путем)
Картинка Google Play Store которую ищем: Тык
Картинка которую ищем в игре Hustle Castle: Тык
Картинка которую ищем в игре Hustle Castle находится в левом нижнем углу игры, сразу после скипа всех "сюжетных" диалогов в самом начале игры под названием "Карта".
Подскажите пожалуйста как исправить, и если это что-то не то с кибором, можно узнать когда примерно поправят? |