Compare commits

...

2 Commits

Author SHA1 Message Date
Jonas Zeunert
e12c4f60ba thread2 2022-08-31 17:50:09 +02:00
Jonas Zeunert
8869c490a5 thread 2022-08-31 17:49:41 +02:00

View File

@@ -5,13 +5,15 @@ from lamps.Lamp import CREDIT
from itertools import cycle
from lamps.LampGroup import *
import asyncio
import threading
class GameState:
players = None
credits = config.BALLS_PER_GAME
isPlaying = False
isStarted = False
isIdle = asyncio.Event()
isIdle = True
idleThread = None
def __init__(self, playerStateFactory, highscore, specialDisplay, currentPlayerID = 0):
CREDIT.activate()
@@ -45,13 +47,17 @@ class GameState:
def startIdleLoop(self):
logging.info("Starting Idle Loop")
asyncio.run(self.idleLoop())
self.isIdle = True
self.idleThread = threading.Thread(target=self.idleLoop)
self.idleThread.start()
pass
def stopIdleLoop(self):
logging.info("Stopping Idle Loop")
self.isIdle.set()
self.isIdle = False
self.idleThread.join()
self.deactivate_all()
pass
def deactivate_all(self):
@@ -72,11 +78,11 @@ class GameState:
for lamps in all_cabinet_lamps:
for lamp in lamps.lamps:
lamp.activate()
if self.isIdle.is_set():
if not self.isIdle:
return
time.sleep(0.1)
self.deactivate_all()
if self.isIdle.is_set():
if not self.isIdle:
return
def createPlayers(self, playerCount):