Просмотр полной версии : Цикл while
KhanWarden
31.08.2021, 12:28
Вот начал изучать пайтон. Написал первый скрипт, который автоматически будет принимать игру в доте. Сделал поиск по картинке на экране в pyautogui, но загвоздка в том, что он отключается через секунду. То есть как включается скрипт в течение секунды если не найдется на экране картинка как на скриншоте, то отключается. Как создать бесконечный цикл, чтобы он работал всегда и не выключался даже после принятия игры?
Python:
import
pyautogui
screen
=
'C:/Users/Khan/Desktop/start.png'
# Местоположение скриншота
start
=
pyautogui
.
locateOnScreen
(
screen
,
confidence
=
0.9
)
pyautogui
.
click
(
start
)
pomidorq
02.09.2021, 22:58
Попробуй так:
Python:
import
pyautogui
import
time
screen
=
'C:/Users/Khan/Desktop/start.png'
def
check_game
(
screen
)
:
try
:
start
=
pyautogui
.
locateOnScreen
(
screen
,
confidence
=
0.9
)
except
:
pass
else
:
pyautogui
.
click
(
start
)
while
True
:
check_game
(
screen
)
time
.
sleep
(
0.5
)
Скорее всего закрывается потому, что при отсутствии изображении на экране происходит ошибка ImageNotFoundException (информация из документации pyautogui), а при возникновении ошибок скрипт автоматически прекратит работу. Чтобы не прекращал существуют блоки try-except-else, которые при возникновении ошибок могут их игнорировать, либо принимать какие то действия, в твоём случае ошибка будет игнорироваться зарезервированным словом pass, которое просто ничего не делает.
Конкретно не советую использовать python скрипты в играх, во первых они работают не корректно, через раз, во вторых бесконечный цикл нагружает ПК. Для доты купи какой нибудь октарин, либо скачай бесплатный овервульф, там есть автопринятие игры.
Если будешь в будущем "искать" изображения на экране - используй OpenCV.
Удачи.
Если будешь в будущем "искать" изображения на экране - используй OpenCV.
Удачи.
пайавтогуй и так использует opencv 😉
pomidorq
02.09.2021, 23:57
пайавтогуй и так использует opencv 😉
А зачем усложнять работу скрипту, вызывая одну библиотеку которая использует другую, и предназначена не только для работы с изображениями?
А зачем усложнять работу скрипту, вызывая одну библиотеку которая использует другую, и предназначена не только для работы с изображениями?
ну тк он с pyatogui не только ищет изображение, а еще и кликает. т.е. зачем городить левую дрочь, если можно той же либой устроить все одной строчкой?
такой вариант плох только тем, что он по всему экрану ищет и производительность будет желать лучшего
pomidorq
03.09.2021, 01:15
ну тк он с pyatogui не только ищет изображение, а еще и кликает. т.е. зачем городить левую дрочь, если можно той же либой устроить все одной строчкой?
такой вариант плох только тем, что он по всему экрану ищет и производительность будет желать лучшего
Окей, насчёт клика я не прав. Но во всяком случае только для поиска изображений на экране, я считаю нужно юзать сразу opencv.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot