Список помог мне создать al oop, который захватывает часть экрана и сравнивает ее с существующим значением RGB. Окончательный код в окончательном редактировании. Полный процесс обучения показан ниже.
Я новичок в кодировании в целом. Я использую пиксели и проверяю значение RGB пикселя, которое объявляет позицию игрока. Но вместо повторного ввода location = ImageGrab.grab (position) я могу изменить положение?
seat0 = (658,848,660,850) #btn
seat1 = (428,816,429,817) #co
seat2 = (406,700,407,701) #hj
seat3 = (546,653,547,654) #lj
seat4 = (798,705,799,706) #bb
seat5 = (769,816,770,817) #sb
btnpos = ImageGrab.grab(seat0)
position = btnpos.load()
btn = (251,0,8)
if position[0,0] == btn:
print('Button')
elif ????
Так что я хочу изменить seat0 (в imagegrab) на seat1 без повторного ввода кода. Спасибо за помощь
РЕДАКТИРОВАТЬ1: Поэтому я попробовал предложение Маркса, не уверен, что я делаю неправильно.
positie = ["(658,848,660,850)","(428,816,430,818)","(406,700,408,702)","(546,653,548,655)","(798,705,799,706)","(769,816,770,817)"]
btn = (251,0,8)
btnpos = ImageGrab.grab(positie[0])
btncheck = btnpos.load()
btn [0,0] not in positie[0]
Я получаю «ValueError: слишком много значений для распаковки (ожидается 4)»
Я пытаюсь присвоить RGB значение positie [0], и оно должно соответствовать btn. если он не совпадает с btn, он должен проверять положение [1], пока не вернет true.
Edit2:
Спасибо, Марк. Я так плохо разбираюсь в циклах.
positie = [(658,848,660,850),(428,816,430,818),(406,700,408,702),(546,653,548,655),(798,705,799,706),(769,816,770,817)]
btn = (251,0,8)
btnpos = ImageGrab.grab(positie[0])
btncheck = btnpos.load()
for x in positie:
#btncheck = btnpos.load()
if btncheck[0,0] ==btn:
print("positie is BTN")
else:
btnpos = (positie[++1])
print(btnpos)
как мне изменить btnpos с добавлением вместо того, чтобы все заново набирать? Таким образом, он должен взять первый элемент в списке и сравнить его с btn. Если он правильный, он может сломаться, если он неправильный, он должен сравнить btn со вторым элементом в списке. Если это правда, это дает мне позицию. Если false: теперь он печатает список [1] шесть раз. Спасибо за ваше терпение
ЗАКЛЮЧИТЕЛЬНОЕ РЕДАКТИРОВАНИЕ: Спасибо, Марк.
positie = [(658,848,660,850),(428,816,430,818),(406,700,408,702),(546,653,548,655),(798,705,799,706),(769,816,770,817)]
btn = (251,0,8)
counter = 0
max_index = len(positie) - 1
while counter <= max_index:
btnpos = ImageGrab.grab(positie[counter])
btncheck = btnpos.load()
if btncheck[0,0] == btn:
print("Positie")
break
else:
print("controleert de volgende")
counter = counter + 1