diff options
author | Viljami Ilola <+@hix.fi> | 2024-03-24 01:22:39 +0200 |
---|---|---|
committer | Viljami Ilola <+@hix.fi> | 2024-03-24 01:22:39 +0200 |
commit | cd128f5bc4fae39fb7e77683758d437f64eb4203 (patch) | |
tree | f4f3efbca3e11e7f6fb73a227ad09ef11918ec48 /src/sliceitoff/game/level.py | |
parent | 4353670f0cee67550b20dfcfd51b81386372f358 (diff) |
gameover, level x and level up screens
Diffstat (limited to 'src/sliceitoff/game/level.py')
-rw-r--r-- | src/sliceitoff/game/level.py | 46 |
1 files changed, 29 insertions, 17 deletions
diff --git a/src/sliceitoff/game/level.py b/src/sliceitoff/game/level.py index 25c34b9..15668a4 100644 --- a/src/sliceitoff/game/level.py +++ b/src/sliceitoff/game/level.py @@ -6,7 +6,9 @@ from player import Player from field import Field from enemies import Enemies from stats import Stats +from screens import levelup_screen, gameover_screen, level_screen from .gameplay import Gameplay +from .anykey import anykey class Level: @@ -22,30 +24,40 @@ class Level: status = self.status, field = self.field, enemies = self.enemies) - self.obj_classes = ( + self.obj_classes = [ self.status, self.field, - self.enemies, - self.player) + self.enemies] + self.level_info = level_screen() + self.level_over = None def step(self, dt): for obj in self.obj_classes: obj.update(dt = dt) self.enemies.hit_walls(self.field.active_sprites()) - - Stats.update_bonus(dt) - - self.display.update( ( - self.status, - self.field, - self.enemies, - pygame.sprite.GroupSingle( - sprite = self.player.get_top_sprite()))) - - - if self.gameplay.step(): - return False - + objs = self.obj_classes[:] + if self.level_info: + if anykey(): + self.level_info = None + else: + objs += [self.level_info] + elif self.level_over: + objs += [self.level_over] + if anykey(): + return False + else: + objs += [pygame.sprite.GroupSingle( + sprite = self.player.get_top_sprite())] + Stats.update_bonus(dt) + if self.gameplay.step(): + if Stats.lives: + self.level_over = levelup_screen() + else: + self.level_over = gameover_screen() + + self.display.update(objs) + + return True |