]> Skullheadx's Git Forge - Pygame-Jam.git/commitdiff
pause menu
author711215 <711215@pdsb.net>
Tue, 12 Jul 2022 20:35:42 +0000 (16:35 -0400)
committer711215 <711215@pdsb.net>
Tue, 12 Jul 2022 20:35:42 +0000 (16:35 -0400)
Game.py
PauseMenu.py [new file with mode: 0644]

diff --git a/Game.py b/Game.py
index f4eb4f0c67811dc1626d9cd6ac2d1982d85ae6b0..00c3c37f33b169fd02212ff132bc300d0734370b 100644 (file)
--- a/Game.py
+++ b/Game.py
@@ -8,6 +8,7 @@ from EndScreen import EndScreen
 from Enemy import Enemy
 from Function.Fade import fade
 from Function.Portal import Transition
+from PauseMenu import PauseMenu
 from Pet import Pet
 from PhysicsBody import PhysicsBody
 from Player import Player
@@ -68,6 +69,9 @@ class Game:
 
         self.dialogue = DialogueUI()
 
+        self.paused = False
+        self.PauseMenu = PauseMenu()
+
         if self.level in [1,3,4]:
             # Density = total clouds / area
             # Total_clouds = area * density
@@ -99,26 +103,34 @@ class Game:
     # def load_world(self, level):
 
     def update(self, delta):
-        Setup.camera_offset = self.player.update(delta)
-        Setup.camera_offset.x = max(0, min(Setup.camera_offset.x, MAP_WIDTH - SCREEN_WIDTH))
-        Setup.camera_offset.y = max(0, min(Setup.camera_offset.y, MAP_HEIGHT - SCREEN_HEIGHT))
-        if self.player.dead:
-            self.level = self.scene.level
-
-        for i, enemy in enumerate(self.enemies):
-            enemy.update(delta, self.player)
-            if enemy.dead:
-                self.enemies[i] = PhysicsBody(enemy.position, enemy.velocity, enemy.width, enemy.height, enemy.colour,
-                                              self.collision_layer["body"],
-                                              [self.collision_layer["world"], self.collision_layer["body"]])
-                self.collision_layer["enemy"].remove(enemy)
-                self.collision_layer["body"].add(self.enemies[i])
-
-        for particle in particles:
-            particle.update(delta)
-
-        self.world.update(delta)
-        self.fade = self.Transition.fade
+        if self.paused == True:
+            pass
+        else:
+            Setup.camera_offset = self.player.update(delta)
+            Setup.camera_offset.x = max(0, min(Setup.camera_offset.x, MAP_WIDTH - SCREEN_WIDTH))
+            Setup.camera_offset.y = max(0, min(Setup.camera_offset.y, MAP_HEIGHT - SCREEN_HEIGHT))
+            if self.player.dead:
+                self.level = self.scene.level
+
+            for i, enemy in enumerate(self.enemies):
+                enemy.update(delta, self.player)
+                if enemy.dead:
+                    self.enemies[i] = PhysicsBody(enemy.position, enemy.velocity, enemy.width, enemy.height, enemy.colour,
+                                                self.collision_layer["body"],
+                                                [self.collision_layer["world"], self.collision_layer["body"]])
+                    self.collision_layer["enemy"].remove(enemy)
+                    self.collision_layer["body"].add(self.enemies[i])
+
+            for particle in particles:
+                particle.update(delta)
+
+            for event in pg.event.get():
+                if event.type == pg.KEYUP:
+                    if event.key == pg.K_ESCAPE:
+                        self.paused = True
+
+            self.world.update(delta)
+            self.fade = self.Transition.fade
 
         # self.pet.update(delta, self.player, self.camera_pos)
 
@@ -183,3 +195,7 @@ class Game:
         if self.player.dead:
             self.scene.update()
             self.scene.draw()
+
+        if self.paused == True:
+            self.PauseMenu.update(self)
+            self.PauseMenu.draw()
diff --git a/PauseMenu.py b/PauseMenu.py
new file mode 100644 (file)
index 0000000..24029e0
--- /dev/null
@@ -0,0 +1,40 @@
+from Setup import *
+from Function.createText import createText
+import time
+
+class PauseMenu:
+
+    def __init__(self):
+        X = SCREEN_WIDTH
+        Y = SCREEN_HEIGHT/2
+
+        self.subtitle = createText(X, Y - 150, 60, (255, 255, 255), "Regular", "Pause Menu", 'c')
+        self.resume = createText(X, Y + 100, 30, (255, 255, 255), "Regular", "Resume", 'c')
+        self.main_menu = createText(X, Y + 200, 30, (255, 255, 255), "Regular", "Main Menu", 'c')
+        self.quit = createText(X, Y + 300, 30, (255, 255, 255), "Regular", "Quit", 'c')
+        self.overlay = pg.Surface((1080, 640))
+        self.overlay.fill((0, 0 ,0))
+        self.overlay.set_alpha(127)
+
+
+    def update(self, game):
+        for event in pg.event.get():
+            if event.type == pg.KEYUP and event.key == pg.K_ESCAPE:
+                game.paused = False
+                
+            if event.type == pg.MOUSEBUTTONUP:
+                mouse_loc = pg.mouse.get_pos()
+                if self.resume[1].collidepoint(mouse_loc):
+                    game.paused = False
+                if self.main_menu[1].collidepoint(mouse_loc):
+                    print("Main Menu")
+                if self.quit[1].collidepoint(mouse_loc):
+                    pg.quit()
+            return
+
+    def draw(self):
+        screen.blit(self.overlay, (0, 0))
+        screen.blit(self.subtitle[0], self.subtitle[1])
+        screen.blit(self.resume[0], self.resume[1])
+        screen.blit(self.main_menu[0], self.main_menu[1])
+        screen.blit(self.quit[0], self.quit[1])
\ No newline at end of file