aboutsummaryrefslogtreecommitdiff
path: root/Steuerung.py
diff options
context:
space:
mode:
authorschererleander <leander@schererleander.de>2025-12-27 02:06:41 +0100
committerschererleander <leander@schererleander.de>2025-12-27 02:06:41 +0100
commit06a0037188b717ac30e6a5cd65da434822cc5d2c (patch)
treedf98e071dd575730b860599ff325963a7ec375b5 /Steuerung.py
parent5df2ab5c3ec1f57d20dcd24c2a64e8745766147e (diff)
Make async game loop browser-ready
Diffstat (limited to 'Steuerung.py')
-rw-r--r--Steuerung.py130
1 files changed, 66 insertions, 64 deletions
diff --git a/Steuerung.py b/Steuerung.py
index 8356aeb..76985c4 100644
--- a/Steuerung.py
+++ b/Steuerung.py
@@ -1,65 +1,67 @@
-import pygame
-from Szenen import *
-
-
-class Steuerung():
- def __init__(self):
- self.__szene = Menue()
- self.__szenenIndex = 0
- self.__verlasseSpiel = False
- self.__spielerListe = []
-
- self.__clock = pygame.time.Clock()
-
- self.loop()
-
- def __sotiereSpielerListe(self):
- self.__spielerListe.sort(key=lambda spieler: spieler[1], reverse=True)
-
- def __addSpieler(self, spielerName: str, spielerScore: int):
- gibtSpieler = False
- for spieler in range(len(self.__spielerListe)):
- if self.__spielerListe[spieler][0] == spielerName:
- gibtSpieler = True
- self.__spielerListe[spieler] = (spielerName, spielerScore)
- if not gibtSpieler:
- self.__spielerListe.append((spielerName, spielerScore))
-
- def __wechselSzene(self):
- self.__szenenIndex += 1
- if self.__szenenIndex > 3:
- self.__szenenIndex = 0
-
- if self.__szenenIndex == 0:
- self.__szene = Menue()
- elif self.__szenenIndex == 1:
- self.__szene = Game()
- elif self.__szenenIndex == 2:
- score = self.__szene.getScore()
- self.__szene = Benennung(score)
- elif self.__szenenIndex == 3:
- score = self.__szene.getScore()
- name = self.__szene.getName()
- self.__addSpieler(name, score)
- self.__sotiereSpielerListe()
- self.__szene = Score(self.__spielerListe)
-
-
- def loop(self):
- while not self.__szene == None and not self.__verlasseSpiel:
- dt = self.__clock.tick(60) / 1000.0
-
- events = []
- for event in pygame.event.get():
- if event.type == pygame.QUIT:
- self.__verlasseSpiel = True
- if event.type == pygame.KEYDOWN:
- events.append(event)
- self.__szene.beiEingabe(events)
-
- self.__szene.beiUpdate(dt)
-
- self.__szene.beiZeichne()
-
- if self.__szene.getWechselSzene():
+import asyncio
+import pygame
+
+from Szenen import Menue, Game, Benennung, Score
+
+
+class Steuerung:
+ def __init__(self):
+ self.__szene = Menue()
+ self.__szenenIndex = 0
+ self.__verlasseSpiel = False
+ self.__spielerListe = []
+
+ self.__clock = pygame.time.Clock()
+
+ def __sotiereSpielerListe(self):
+ self.__spielerListe.sort(key=lambda spieler: spieler[1], reverse=True)
+
+ def __addSpieler(self, spielerName: str, spielerScore: int):
+ gibtSpieler = False
+ for spieler in range(len(self.__spielerListe)):
+ if self.__spielerListe[spieler][0] == spielerName:
+ gibtSpieler = True
+ self.__spielerListe[spieler] = (spielerName, spielerScore)
+ if not gibtSpieler:
+ self.__spielerListe.append((spielerName, spielerScore))
+
+ def __wechselSzene(self):
+ self.__szenenIndex += 1
+ if self.__szenenIndex > 3:
+ self.__szenenIndex = 0
+
+ if self.__szenenIndex == 0:
+ self.__szene = Menue()
+ elif self.__szenenIndex == 1:
+ self.__szene = Game()
+ elif self.__szenenIndex == 2:
+ score = self.__szene.getScore()
+ self.__szene = Benennung(score)
+ elif self.__szenenIndex == 3:
+ score = self.__szene.getScore()
+ name = self.__szene.getName()
+ self.__addSpieler(name, score)
+ self.__sotiereSpielerListe()
+ self.__szene = Score(self.__spielerListe)
+
+ async def loop(self):
+ while not self.__szene == None and not self.__verlasseSpiel:
+ dt = self.__clock.tick(60) / 1000.0
+
+ key_events = []
+ for event in pygame.event.get():
+ if event.type == pygame.QUIT:
+ self.__verlasseSpiel = True
+ elif event.type == pygame.KEYDOWN:
+ key_events.append(event)
+
+ if key_events:
+ self.__szene.beiEingabe(key_events)
+
+ self.__szene.beiUpdate(dt)
+ self.__szene.beiZeichne()
+
+ if self.__szene.getWechselSzene():
self.__wechselSzene()
+
+ await asyncio.sleep(0)