#python
#python
Вопрос:
def pathing(shape,size):
target = pyautogui.locateOnScreen(os.path.expanduser(r'~Desktopwow botreferencestarget.png'),
region=(0, 0, 1024, 768), confidence=.7)
target2 = pyautogui.locateOnScreen(os.path.expanduser(r'~Desktopwow botreferencestarget2.png'),
region=(0, 0, 1024, 768), confidence=.7)
target3 = pyautogui.locateOnScreen(os.path.expanduser(r'~Desktopwow botreferencestarget3.png'),
region=(0, 0, 1024, 768), confidence=.7)
distance_moved=[]
seconds_moved=0
if shape=='triangle':
if target is None and target2 is None and target3 is None:
pyautogui.keyDown("w")
distance_moved.append(seconds_moved 1)
seconds_moved =1
У меня есть приведенный выше код для отслеживания перемещений секунд и добавления его в список distance_moved[] . Однако проблема в том, что это не добавляет 1 к секундам, перемещаемым каждые 1 секунду. Возможно ли заставить его добавлять 1 через каждую секунду, но без использования time.sleep ?
Спасибо за любые ответы!
Ответ №1:
Вы можете использовать time.time
пример:
import time
start = time.time()
while True:
now = time.time()
print(f"{now - start} second(s) have passed")
Итак, в вашем случае:
if now - start > 1:
distance_moved.append(seconds_moved 1)
Если вы хотите, чтобы это продолжалось каждую секунду, вы можете сбросить таймер следующим образом:
if now - start > 1:
distance_moved.append(seconds_moved 1)
start = now
Комментарии:
1. Привет! Спасибо! time.time возвращает ошибку; ‘ TypeError: аргумент float() должен быть строкой или числом, а не ‘builtin_function_or_method’ ‘. Однако time.monotonic работал отлично. Должно быть нормально заменить time.time на time.monotonic, верно? Еще раз спасибо!! А затем, чтобы подсчитать, сколько секунд прошло в итоге, я могу просто использовать len(distance_moved) и len = seconds moved?
2. Ошибка звучит так, как будто вы сделали
time.time
в отличие отtime.time()
. Вы забыли скобку.3. О! извините!!! вы правы, я сделал time.time вместо time.time(). Со скобками это сработало, еще раз спасибо!