У меня есть 3 процесса, которые я хочу запустить одновременно с пафосом через некоторое время. L oop, однако он ничего не печатает и не выводит, он просто там удерживается.
def program_loop(self):
while True:
finished_game = self.vision.is_game_finished()
dead = self.vision.get_alive_state()
if __name__ == "__main__":
self.vision.refresh_frame('ingame')
p = ProcessPool(nodes=4)
bowls, spoons, x = p.map(self.find_objs, ['bowls','spoons', 'x'])
print(bowls, spoons, x)
is_game_finished ()
def is_game_finished(self):
# default being game viewport
running = self.find_template('finishgame', 'finishgame')
if running:
return False
else:
return True
get_alive_state ()
def get_alive_state(self):
self.refresh_frame('death')
pixel_point = self.screenshot2.getpixel((3, 3))
if pixel_point[0] == 1:
return True
else:
return False
refresh_frame ()
def refresh_frame(self)
frame_rgb = ImageGrab.grab(self.static_template_frames[viewport])
frame_grayscale = cv2.cvtColor(np.array(frame_rgb), cv2.COLOR_BGR2GRAY)
self.screenshot2 = frame_rgb
self.frame = frame_grayscale
Я пытался вызвать program_l oop () в конце самого себя, но в итоге он выдает ошибку переполнения стека. Как вы, возможно, теперь знаете, это основная программа l oop, и я не могу сделать ее итеративной. Скажите, что я делаю не так?
find_ob js эта функция в основном находит объекты через openCV cv2.matchTemplate и возвращает их позиции.
Если вам понадобится больше кода, я отредактирую, спасибо!