Görüntü kontrol ettirme

Ekran Alıntısı

Merhaba şöyle bir kodum var burada amaç görünen resime imleç ile hareket etmek.
resim bazen değişiyor o yüzden şöyle bir şeye ihtiyacım var.
hangi resim gözükürse ona hareket etsın yanı 1.resim gözüktüyse 1.resime, gözükmediyse diğer resime hareket etsın.

def wile():
    while True:
        py.scroll(-320)
        try:
            time.sleep(2)
            x, y = py.locateCenterOnScreen("amazon.png")
            py.locateCenterOnScreen("duzamazon.png")
            
    
        except TypeError:
            pass

        else:
            py.moveTo(x=x,y=y)
            #py.moveTo(duzamazon)
            time.sleep(1)
            link1()
            break


wile()        

Eğer görüntü, ekranda tespit edilememişse None değerini döndürecektir.
Buna bağlı olarak for döngüsüyle birlikte koşul cümlesi kullanacak olursanız, çözüme ulaşabilirsiniz.

import pyautogui as py

class Bot:
    @staticmethod
    def locate(image):
        data = py.locateOnScreen(image)
        return data

    def click_on(self, images):
        for image in images:
            data = self.locate(image)
            if data is not None:
                # resmin ortasına tıklamak için...
                py.moveTo(data.left + data.width // 2, data.top + data.height // 2)
                py.click()
                break

bot = Bot()
# Dosya isimlerini kendinize göre ayarlayabilirsiniz.
bot.click_on(["toprak.png", "tas.png"])

2 Beğeni

hocam aslında amacım şu ekranı aşağı kaydırıyor 2 sanıye sonra kontrol edip ekranda hangi image varsa(image1,image2) ona tıklayacak.
bu kodla başarabilir miyim

çünkü while kullanmam gerek

Bu kodda, listedeki elemanlar ekranda sırasıyla aranıyor, tespit edilen ilk elemana tıklanıyor ve for döngüsü sona eriyor. Yani ekranda birden fazla aranan görsel varsa, for döngüsünde hangi görsel kontrol ediliyorsa ona tıklanacaktır.
Bunu while döngüsü içine alacak olursanız, amacınıza ulaşabilirsiniz diye düşünmekteyim.

1 Beğeni

hocam çalıştırdım yanıt vermedi hata da vermedi boş döndürdü sanırım bir daha bakmam lazım