From: lbcmk <30442978+lbcmk@users.noreply.github.com> Date: Thu, 7 Jul 2022 23:30:05 +0000 (-0400) Subject: Added a death screen X-Git-Url: http://git.skullheadx.com/nixos/static/projects/suckless.html?a=commitdiff_plain;h=d6f766b70d7b36bf890b6aa08a1e241f9614ef44;p=Pygame-Jam.git Added a death screen --- diff --git a/EndScreen.py b/EndScreen.py new file mode 100644 index 0000000..aaecb36 --- /dev/null +++ b/EndScreen.py @@ -0,0 +1,44 @@ +from Setup import * +from CommonImports.colours import black +from Function.createText import createText + +class EndScreen: + + def __init__(self): + self.texts = [] + X = 250 + self.texts.append(createText(X, 100, 32, black, "Bold", "You Died",)) + self.texts.append(createText(X, 250, 24, black, "Regular", "Respawn")) + self.texts.append(createText(X, 350, 24, black, "Regular", "Options")) + self.texts.append(createText(X, 450, 24, black, "Regular", "Quit")) + + self.level = -1 + + + def update(self): + for ev in pg.event.get(): + if ev.type == pg.MOUSEBUTTONDOWN: + mouseX, mouseY = pg.mouse.get_pos() + for i in range(len(self.texts)): + x1 = self.texts[i][1][0] + y1 = self.texts[i][1][1] + x2 = x1 + self.texts[i][0].get_rect()[2] + y2 = y1 + self.texts[i][0].get_rect()[3] + + if (x1 <= mouseX <= x2 and y1 <= mouseY <= y2): + self.menuFunctions(i) + return + + def draw(self): + screen.fill((255, 255, 255)) + for i in self.texts: + screen.blit(i[0], i[1]) + + def menuFunctions(self, num): + match num: + case 1: + self.level = -1 + case 2: + print("Options") + case 3: + pg.quit(); diff --git a/Game.py b/Game.py index 17a709a..20098f0 100644 --- a/Game.py +++ b/Game.py @@ -6,6 +6,7 @@ from Pet import Pet from Enemy import Enemy from Block import Block from PhysicsBody import PhysicsBody +from EndScreen import EndScreen class Game: @@ -19,11 +20,14 @@ class Game: self.blocks = [Block((0, SCREEN_HEIGHT * 3 / 4),self.collision_layer["world"]), Block((SCREEN_WIDTH, SCREEN_HEIGHT * 3 / 4 - 25),self.collision_layer["world"])] + self.scene = EndScreen() + self.level = 1 + self.scene.level = self.level def update(self, delta): Setup.camera_offset = self.player.update(delta) if self.player.dead: - print("You Died!") + self.level = self.scene.level for i,enemy in enumerate(self.enemies): enemy.update(delta, self.player) @@ -46,4 +50,8 @@ class Game: block.draw(surf) self.player.draw(surf) + + if self.player.dead: + self.scene.update() + self.scene.draw() # self.pet.draw(surf) diff --git a/main.py b/main.py index 82950c4..5ae4753 100644 --- a/main.py +++ b/main.py @@ -8,24 +8,27 @@ is_running = True scene = Menu() old_level = 0 - - level = 1 while is_running: if pg.event.peek(pg.QUIT): is_running = False - if level == 0: + if level <= 1: level = scene.level + + if level == -1: + level = old_level + old_level = 0 if old_level != level: - old_level = level match level: case 0: scene = Menu() case 1: scene = Game() + old_level = level + scene.update(delta) scene.draw(screen)