Как запустить Pygame с Threading?
Есть класс игры
class Game:
def __init__(self):
self.sc = pg.display.set_mode(WINDOW)
self.clock = pg.time.Clock()
def draw(self):
pass
def run(self):
while True:
self.sc.fill((0, 0, 0))
self.draw()
pg.display.flip()
[exit() for i in pg. event.get() if i.type == pg.QUIT]
pg.display.set_caption(str(int(self.clock.get_fps())))
self.clock.tick(60)
И есть ещё одна функция для примера
def yep():
while True:
pass
При запуске первой функции
t1 = threading.Thread(target=yep)
t1.run()
Вторая работать не будет
game = Game()
t2 = threading.Thread(target=game.run)
t2.run()
Что делать? ;-;
Ответы (1 шт):
Автор решения: Roman-Stop RU aggression in UA
→ Ссылка
Поток запускается методом start. Именно этот метод создаст новый поток и запустит в нем функцию run, а сама функция start закончит выполенение и выполенине продолжиться дальше.
В вашем случае вы вызываете run в текущем потоке.
Нужно делать так:
t1 = threading.Thread(target=yep)
t1.start()