]> Skullheadx's Git Forge - Pygame-Jam.git/commitdiff
Added a death screen
authorlbcmk <30442978+lbcmk@users.noreply.github.com>
Thu, 7 Jul 2022 23:30:05 +0000 (19:30 -0400)
committerlbcmk <30442978+lbcmk@users.noreply.github.com>
Thu, 7 Jul 2022 23:30:05 +0000 (19:30 -0400)
EndScreen.py [new file with mode: 0644]
Game.py
main.py

diff --git a/EndScreen.py b/EndScreen.py
new file mode 100644 (file)
index 0000000..aaecb36
--- /dev/null
@@ -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 17a709af639d2954fb2a6794798724890a85cd4c..20098f068ff0f3943a3c21fd037e5bd0321bb5bd 100644 (file)
--- 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 82950c41981d157cfcf9e34c72b3fabffc8d6ea6..5ae4753b65c14632ab5064043d47a560017879d1 100644 (file)
--- 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)