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
self.dialogue = DialogueUI()
+ self.paused = False
+ self.PauseMenu = PauseMenu()
+
if self.level in [1,3,4]:
# Density = total clouds / area
# Total_clouds = area * density
# 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)
if self.player.dead:
self.scene.update()
self.scene.draw()
+
+ if self.paused == True:
+ self.PauseMenu.update(self)
+ self.PauseMenu.draw()
--- /dev/null
+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