diff options
author | Viljami Ilola <+@hix.fi> | 2024-03-28 13:54:00 +0200 |
---|---|---|
committer | Viljami Ilola <+@hix.fi> | 2024-03-28 13:54:00 +0200 |
commit | f502b21183d307fcab9b353aa18609d15c3547f1 (patch) | |
tree | d071b60ce9893ebc3086cee73f64e17774ad2c7b /src/sliceitoff/game | |
parent | da2bb3d8e7dcd7f7f0a0c2d2e214b422350d1993 (diff) |
hiscores: loading, saving, screen
Diffstat (limited to 'src/sliceitoff/game')
-rw-r--r-- | src/sliceitoff/game/__init__.py | 3 | ||||
-rw-r--r-- | src/sliceitoff/game/game.py | 33 | ||||
-rw-r--r-- | src/sliceitoff/game/initials.py (renamed from src/sliceitoff/game/hiscore.py) | 8 | ||||
-rw-r--r-- | src/sliceitoff/game/show.py | 7 |
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(): |