Используйте пафос внутри выражения «пока верно» - PullRequest
0 голосов
/ 05 февраля 2020

У меня есть 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 и возвращает их позиции.

Если вам понадобится больше кода, я отредактирую, спасибо!

...