summaryrefslogtreecommitdiff
path: root/src/sliceitoff/game
diff options
context:
space:
mode:
authorViljami Ilola <+@hix.fi>2024-03-28 13:54:00 +0200
committerViljami Ilola <+@hix.fi>2024-03-28 13:54:00 +0200
commitf502b21183d307fcab9b353aa18609d15c3547f1 (patch)
treed071b60ce9893ebc3086cee73f64e17774ad2c7b /src/sliceitoff/game
parentda2bb3d8e7dcd7f7f0a0c2d2e214b422350d1993 (diff)
hiscores: loading, saving, screen
Diffstat (limited to 'src/sliceitoff/game')
-rw-r--r--src/sliceitoff/game/__init__.py3
-rw-r--r--src/sliceitoff/game/game.py33
-rw-r--r--src/sliceitoff/game/initials.py (renamed from src/sliceitoff/game/hiscore.py)8
-rw-r--r--src/sliceitoff/game/show.py7
4 files changed, 31 insertions, 20 deletions
diff --git a/src/sliceitoff/game/__init__.py b/src/sliceitoff/game/__init__.py
index cf0da1e..a2771db 100644
--- a/src/sliceitoff/game/__init__.py
+++ b/src/sliceitoff/game/__init__.py
@@ -1,4 +1 @@
from .game import Game
-from .gameplay import Gameplay
-from .level import Level
-from .show import Show
diff --git a/src/sliceitoff/game/game.py b/src/sliceitoff/game/game.py
index fd796e9..0b67d2f 100644
--- a/src/sliceitoff/game/game.py
+++ b/src/sliceitoff/game/game.py
@@ -9,11 +9,12 @@ import pygame
from display import Display
from images import Images, Fonts
from stats import Stats
-from screens import welcome_screen
+from screens import welcome_screen, hiscores_screen
+from hiscores import HiScores
from .level import Level
from .show import Show
-from .hiscore import HiScore
+from .initials import Initials
class Game:
def __init__(self):
@@ -25,12 +26,21 @@ class Game:
Fonts.load_fonts( Path(__file__).parent.parent.resolve() )
+ self.hiscores = HiScores()
+
def welcome(self):
ws = Show(welcome_screen())
dt = 0
while ws.step(dt):
dt = self.clock.tick()
- self.display.update( [ws.sprites] )
+ self.display.update( [ws] )
+
+ def show_highscores(self):
+ his = Show(hiscores_screen(str(self.hiscores)))
+ dt = 0
+ while his.step(dt):
+ dt = self.clock.tick()
+ self.display.update( [his] )
def newgame(self):
Stats.new_game()
@@ -43,18 +53,21 @@ class Game:
if Stats.lives:
Stats.level_up()
- def hiscore(self):
- hs = HiScore()
- dt = 0
- while hs.step():
+ def initials(self):
+ initials = Initials()
+ dt = 0
+ while initials.step():
dt = self.clock.tick()
- # hs.update(dt = dt)
- self.display.update([hs])
+ self.display.update([initials])
+ return initials.name
def run(self):
self.welcome()
self.newgame()
- self.hiscore()
+ if self.hiscores.high_enough(Stats.score):
+ self.hiscores.add( Stats.score, self.initials())
+ self.show_highscores()
+
def __del__(self):
pygame.quit()
diff --git a/src/sliceitoff/game/hiscore.py b/src/sliceitoff/game/initials.py
index 734ad5e..5b25195 100644
--- a/src/sliceitoff/game/hiscore.py
+++ b/src/sliceitoff/game/initials.py
@@ -1,11 +1,11 @@
import pygame
-from screens import hiscore_screen
+from screens import initials_screen
-class HiScore(pygame.sprite.Group):
+class Initials(pygame.sprite.Group):
def __init__(self):
super().__init__()
- self.add(hiscore_screen(""))
+ self.add(initials_screen(""))
self.name = ""
def update(self, **kwargs):
@@ -40,5 +40,5 @@ class HiScore(pygame.sprite.Group):
self.name += pygame.key.name(event.key)[0].upper()
self.name = self.name[:8]
self.empty()
- self.add(hiscore_screen(self.name))
+ self.add(initials_screen(self.name))
return True
diff --git a/src/sliceitoff/game/show.py b/src/sliceitoff/game/show.py
index 50ed0ba..07146c3 100644
--- a/src/sliceitoff/game/show.py
+++ b/src/sliceitoff/game/show.py
@@ -2,10 +2,11 @@
import pygame
from .anykey import anykey
-class Show:
+class Show(pygame.sprite.Group):
""" To show some sprites and quit on any key """
def __init__(self, sprites = []):
- self.sprites = sprites
+ super().__init__()
+ self.add(sprites)
self.fadeout = 1_000
self.timeout = 5_000
@@ -17,7 +18,7 @@ class Show:
if anykey():
return False
self.fadeout -= dt
- self.sprites.update(explode=dt)
+ self.update(explode=dt)
return True
if anykey():