def __init__(self): pygame.init() pygame.mixer.music.load('sound/pacman_beginning.wav') pygame.mixer.music.play(-1) self.screen = pygame.display.set_mode(SCREENSIZE, 0, 32) self.background = None self.background_flash = None self.setBackground() self.clock = pygame.time.Clock() self.pelletsEaten = 0 self.fruit = None self.pause = Pauser(True) self.level = LevelController() self.text = TextGroup() self.score = 0 self.gameover = False self.sheet = Spritesheet() self.maze = Maze(self.sheet) self.flashBackground = False self.eat_sound = pygame.mixer.Sound("sound/pacman_chomp.wav") self.music_sound = pygame.mixer.Sound("sound/pacman_beginning.wav") self.death_sound = pygame.mixer.Sound("sound/pacman_death.wav") self.eatghost_sound = pygame.mixer.Sound("sound/pacman_eatghost.wav") self.eatfruit_sound = pygame.mixer.Sound("sound/pacman_eatfruit.wav") self.intermission_sound = pygame.mixer.Sound( "sound/pacman_intermission.wav")
def __init__(self): pygame.init() self.screen = pygame.display.set_mode(SCREENSIZE, 0, 32) self.background = None self.setBackground() self.clock = pygame.time.Clock() self.pelletsEaten = 0 self.fruit = None self.pause = Pauser(True) self.level = LevelController() self.text = TextGroup() self.sheet = Spritesheet() self.maze = Maze(self.sheet)
def __init__(self): pygame.init() pygame.mixer.init(22050, -16, 2, 64) self.screen = pygame.display.set_mode(SCREENSIZE, 0, 32) self.background = None self.background_flash = None self.setBackground() self.clock = pygame.time.Clock() self.pelletsEaten = 0 self.fruit = None self.pause = Pauser(True) self.level = LevelController() self.text = TextGroup() self.score = 0 self.gameover = False self.sheet = Spritesheet() self.maze = Maze(self.sheet) self.flashBackground = False
def __init__(self): pg.init() self.settings = Settings() self.screen = pg.display.set_mode( (self.settings.screen_width, self.settings.screen_height)) pg.display.set_caption(self.settings.title) self.settings.get_sprite_sheet() # self.screen.fill(self.settings.bg_color) self.clock = pg.time.Clock() self.pellets_eaten = 0 self.fruit = None self.pause = Pauser(True) self.level = LevelController() # Text to show the game title self.game_title_font = pg.font.SysFont("inkfree", 60) self.game_title = self.game_title_font.render("PAC-MAN", True, (253, 254, 0)) # Pacman and ghosts images for start screen self.pacman_img = self.settings.get_image(0, 1, 32, 32) self.pacman_img = pg.transform.scale(self.pacman_img, (100, 100)) self.ghost_one = self.settings.get_image(2, 2, 32, 32) self.ghost_one = pg.transform.scale(self.ghost_one, (100, 100)) self.ghost_two = self.settings.get_image(0, 3, 32, 32) self.ghost_two = pg.transform.scale(self.ghost_two, (100, 100)) self.ghost_three = self.settings.get_image(4, 4, 32, 32) self.ghost_three = pg.transform.scale(self.ghost_three, (100, 100)) self.ghost_four = self.settings.get_image(6, 5, 32, 32) self.ghost_four = pg.transform.scale(self.ghost_four, (100, 100)) self.start_game() self.play()
def __init__(self): pygame.init() self.screen = pygame.display.set_mode(SCREENSIZE, 0, 1000) self.background = None self.background_flash = None self.setBackground() self.clock = pygame.time.Clock() self.pelletsEaten = 0 self.fruit = None self.sound = Sound(sound="sounds/pmanpellets.wav") self.sound.play() self.sound.pause_bg() # self.play_button, self.quit_button = None self.pause = Pauser(True) self.level = LevelController() self.text = TextGroup() self.score = 0 self.gameover = False self.sheet = Spritesheet() self.maze = Maze(self.sheet) self.flashBackground = False
def __init__(self, nodes, spritesheet): MazeRunner.__init__(self, nodes, spritesheet) self.name = "ghost" self.goal = Vector2() self.modeStack = self.setupModeStack() self.mode = self.modeStack.pop() self.modeTimer = 0 self.spawnNode = self.findSpawnNode() self.setGuideStack() self.pelletsForRelease = 0 self.released = True self.bannedDirections = [] self.setStartPosition() self.points = 200 self.animation = None self.animations = {} self.level = LevelController()
class Game: def __init__(self): pg.init() self.settings = Settings() self.screen = pg.display.set_mode( (self.settings.screen_width, self.settings.screen_height)) pg.display.set_caption(self.settings.title) self.settings.get_sprite_sheet() # self.screen.fill(self.settings.bg_color) self.clock = pg.time.Clock() self.pellets_eaten = 0 self.fruit = None self.pause = Pauser(True) self.level = LevelController() # Text to show the game title self.game_title_font = pg.font.SysFont("inkfree", 60) self.game_title = self.game_title_font.render("PAC-MAN", True, (253, 254, 0)) # Pacman and ghosts images for start screen self.pacman_img = self.settings.get_image(0, 1, 32, 32) self.pacman_img = pg.transform.scale(self.pacman_img, (100, 100)) self.ghost_one = self.settings.get_image(2, 2, 32, 32) self.ghost_one = pg.transform.scale(self.ghost_one, (100, 100)) self.ghost_two = self.settings.get_image(0, 3, 32, 32) self.ghost_two = pg.transform.scale(self.ghost_two, (100, 100)) self.ghost_three = self.settings.get_image(4, 4, 32, 32) self.ghost_three = pg.transform.scale(self.ghost_three, (100, 100)) self.ghost_four = self.settings.get_image(6, 5, 32, 32) self.ghost_four = pg.transform.scale(self.ghost_four, (100, 100)) self.start_game() self.play() def start_game(self): self.level.reset() level_map = self.level.get_level() self.game_over = False self.stats = GameStats(settings=self.settings) self.sb = Scoreboard(settings=self.settings, screen=self.screen, stats=self.stats) self.sound = Sound() self.maze = Maze(settings=self.settings, screen=self.screen) self.maze.get_maze() self.grid_pts = Grid_Pnts_Group(settings=self.settings, screen=self.screen, txt_file=level_map["mazename"]) self.foods = FoodGroup(settings=self.settings, screen=self.screen, food_file=level_map["foodname"]) self.pacman = Pacman(game=self, settings=self.settings, screen=self.screen, grid_pts=self.grid_pts, foods=self.foods, sb=self.sb) self.ghosts = Ghost_Group(game=self, settings=self.settings, screen=self.screen, grid_pts=self.grid_pts) self.pellets_eaten = 0 self.settings.pacman_lives = self.settings.starting_lives self.fruit = None self.pause.force(True) def start_level(self): level_map = self.level.get_level() self.screen.fill(self.settings.bg_color) self.grid_pts = Grid_Pnts_Group(settings=self.settings, screen=self.screen, txt_file=level_map["mazename"]) self.foods = FoodGroup(settings=self.settings, screen=self.screen, food_file=level_map["foodname"]) self.pacman.grid_pts.grid_pts_li = self.grid_pts.grid_pts_li self.pacman.grid_pts = self.grid_pts self.pacman.food_list = self.foods.food_list self.pacman.reset() self.ghosts = Ghost_Group(game=self, settings=self.settings, screen=self.screen, grid_pts=self.grid_pts) self.pellets_eaten = 0 self.sb.score_int = 0 self.fruit = None self.pause.force(True) def restart_level(self): self.pacman.reset() self.ghosts = Ghost_Group(game=self, settings=self.settings, screen=self.screen, grid_pts=self.grid_pts) self.fruit = None def play(self): self.screen.fill((0, 0, 0)) self.play_button = Button(self.screen, "Play") self.score_button = ScoreButton(self.screen, "High Score") while True: if self.settings.game_active: if not self.game_over: dt = self.clock.tick(30) / 1000.0 if not self.pause.paused: self.sound.unpause_bg() self.ghosts.update(dt=dt, pacman=self.pacman) self.pacman.update(dt=dt, ghosts=self.ghosts, stats=self.stats, sb=self.sb, sound=self.sound) if self.fruit is not None: self.fruit.update(dt=dt) if self.pause.pause_type != None: self.pause.settle_pause(self) self.foods.update(dt=dt) self.pause.update(dt) else: self.screen.blit(self.game_title, (100, 20)) self.screen.blit(self.pacman_img, (175, 200)) self.screen.blit(self.ghost_one, (175, 80)) self.screen.blit(self.ghost_two, (175, 320)) self.screen.blit(self.ghost_three, (300, 200)) self.screen.blit(self.ghost_four, (50, 200)) gf.check_events(game=self) gf.update_screen(game=self) def pacman_died(self): if self.settings.pacman_lives == 0: self.screen.fill((0, 0, 0)) self.game_over = True self.settings.game_active = False else: self.restart_level() self.sound.pause_bg() self.sound.pacman_die() self.pause.pause_type = None def beat_level(self): self.level.next_level() self.start_level() self.pause.pause_type = None
class GameController(object): def __init__(self): pygame.init() pygame.mixer.music.load('sound/pacman_beginning.wav') pygame.mixer.music.play(-1) self.screen = pygame.display.set_mode(SCREENSIZE, 0, 32) self.background = None self.background_flash = None self.setBackground() self.clock = pygame.time.Clock() self.pelletsEaten = 0 self.fruit = None self.pause = Pauser(True) self.level = LevelController() self.text = TextGroup() self.score = 0 self.gameover = False self.sheet = Spritesheet() self.maze = Maze(self.sheet) self.flashBackground = False self.eat_sound = pygame.mixer.Sound("sound/pacman_chomp.wav") self.music_sound = pygame.mixer.Sound("sound/pacman_beginning.wav") self.death_sound = pygame.mixer.Sound("sound/pacman_death.wav") self.eatghost_sound = pygame.mixer.Sound("sound/pacman_eatghost.wav") self.eatfruit_sound = pygame.mixer.Sound("sound/pacman_eatfruit.wav") self.intermission_sound = pygame.mixer.Sound( "sound/pacman_intermission.wav") def setBackground(self): self.background = pygame.surface.Surface(SCREENSIZE).convert() self.background_flash = pygame.surface.Surface(SCREENSIZE).convert() self.background.fill(BLACK) def startGame(self): print("Start game") self.level.reset() levelmap = self.level.getLevel() self.maze.getMaze(levelmap["name"].split(".")[0]) self.maze.constructMaze(self.background, self.background_flash, levelmap["row"]) self.nodes = NodeGroup(levelmap["name"]) self.pellets = PelletGroup(levelmap["name"]) self.pacman = Pacman(self.nodes, self.sheet) self.ghosts = GhostGroup(self.nodes, self.sheet) self.pelletsEaten = 0 self.fruit = None self.pause.force(True) self.text.showReady() self.text.updateLevel(self.level.level + 1) self.gameover = False self.maze.reset() self.flashBackground = False def startLevel(self): print("Start new level") levelmap = self.level.getLevel() self.setBackground() self.maze.getMaze(levelmap["name"].split(".")[0]) self.maze.constructMaze(self.background, self.background_flash, levelmap["row"]) self.nodes = NodeGroup(levelmap["name"]) self.pellets = PelletGroup(levelmap["name"]) self.pacman.nodes = self.nodes self.pacman.reset() self.ghosts = GhostGroup(self.nodes, self.sheet) self.pelletsEaten = 0 self.fruit = None self.pause.force(True) self.text.updateLevel(self.level.level + 1) self.flashBackground = False self.maze.reset() def restartLevel(self): print("Restart current level") self.pacman.reset() self.ghosts = GhostGroup(self.nodes, self.sheet) self.pause.force(True) self.fruit = None self.flashBackground = False self.maze.reset() def update(self): if not self.gameover: dt = self.clock.tick(30) / 1000.0 if not self.pause.paused: self.pacman.update(dt) self.ghosts.update(dt, self.pacman) if self.fruit is not None: self.fruit.update(dt) if self.pause.pauseType != None: self.pause.settlePause(self) self.checkPelletEvents() self.checkGhostEvents() self.checkFruitEvents() else: if self.flashBackground: self.maze.flash(dt) if self.pacman.animateDeath: self.pacman.updateDeath(dt) self.pause.update(dt) self.pellets.update(dt) self.text.update(dt) self.checkEvents() self.text.updateScore(self.score) self.render() def checkEvents(self): for event in pygame.event.get(): if event.type == QUIT: exit() elif event.type == KEYDOWN: if event.key == K_SPACE: if self.gameover: self.startGame() else: self.pause.player() if self.pause.paused: pygame.mixer.music.pause() self.text.showPause() else: self.text.hideMessages() pygame.mixer.music.unpause() def checkPelletEvents(self): pellet = self.pacman.eatPellets(self.pellets.pelletList) if pellet: pygame.mixer.music.pause() pygame.mixer.Sound.play(self.eat_sound) pygame.mixer.music.unpause() self.pelletsEaten += 1 self.score += pellet.points if (self.pelletsEaten == 70 or self.pelletsEaten == 140): if self.fruit is None: levelmap = self.level.getLevel() self.fruit = Fruit(self.nodes, self.sheet, levelmap["fruit"]) self.pellets.pelletList.remove(pellet) if pellet.name == "powerpellet": self.ghosts.resetPoints() self.ghosts.freightMode() if self.pellets.isEmpty(): self.pacman.visible = False self.ghosts.hide() self.pause.startTimer(3, "clear") self.flashBackground = True def checkGhostEvents(self): self.ghosts.release(self.pelletsEaten) ghost = self.pacman.eatGhost(self.ghosts) if ghost is not None: if ghost.mode.name == "FREIGHT": pygame.mixer.music.pause() pygame.mixer.Sound.play(self.eatghost_sound) pygame.mixer.music.unpause() self.ghosts.updatePoints() ghost.spawnMode(speed=2) self.pause.startTimer(1) self.pacman.visible = False ghost.visible = False elif ghost.mode.name != "SPAWN": self.pacman.loseLife() self.ghosts.hide() self.pause.startTimer(3, "die") def checkFruitEvents(self): if self.fruit is not None: if self.pacman.eatFruit(self.fruit): pygame.mixer.music.pause() pygame.mixer.Sound.play(self.eatfruit_sound) pygame.mixer.music.unpause() self.score += self.fruit.points self.text.createTemp(self.fruit.points, self.fruit.position) self.fruit = None elif self.fruit.destroy: self.fruit = None def resolveDeath(self): if self.pacman.lives == 0: self.gameover = True self.pacman.visible = False self.text.showGameOver() #pygame.mixer.music.pause() #pygame.mixer.Sound.play(self.death_sound) pygame.mixer.music.stop() else: pygame.mixer.music.pause() pygame.mixer.Sound.play(self.death_sound) pygame.mixer.music.unpause() self.restartLevel() self.pause.pauseType = None def resolveLevelClear(self): pygame.mixer.music.pause() self.level.nextLevel() self.startLevel() pygame.mixer.music.unpause() self.pause.pauseType = None def render(self): self.screen.blit(self.maze.background, (0, 0)) #self.nodes.render(self.screen) self.pellets.render(self.screen) if self.fruit is not None: self.fruit.render(self.screen) self.pacman.render(self.screen) self.ghosts.render(self.screen) self.pacman.renderLives(self.screen) self.text.render(self.screen) pygame.display.update()
class GameController(object): #general activation def __init__(self): pygame.init() self.screen = pygame.display.set_mode(SCREENSIZE, 0, 32) self.background = None self.setBackground() self.clock = pygame.time.Clock() self.pelletsEaten = 0 self.fruit = None self.pause = Pauser(True) self.level = LevelController() self.text = TextGroup() self.sheet = Spritesheet() self.maze = Maze(self.sheet) def setBackground(self): self.background = pygame.surface.Surface(SCREENSIZE).convert() self.background.fill(BLACK) def startGame(self): #Sets up the game self.level.reset() levelmap = self.level.getLevel() self.maze.getMaze(levelmap["mazename"].split(".")[0]) self.maze.constructMaze(self.background) self.nodes = NodeGroup(levelmap["mazename"]) self.pellets = PelletGroup(levelmap["pelletname"]) self.pacman = Pacman(self.nodes, self.sheet) #self.ghosts = GhostGroup(self.nodes, self.sheet) Ghost command, removed to get rid of ghosts self.pelletsEaten = 0 self.fruit = None self.pause.force(False) #Was True, set to false for automatic start self.gameover = False self.score = 0 #self.text.showReady() #Removed, so that we don't have Ready permanently on screen #self.text.updateLevel(self.level.level+1) #Removed to start same level each time def startLevel(self): #Begins the given level levelmap = self.level.getLevel() self.setBackground() self.nodes = NodeGroup(levelmap["mazename"]) self.pellets = PelletGroup(levelmap["pelletname"]) self.pacman.nodes = self.nodes self.pacman.reset() #self.ghosts = GhostGroup(self.nodes, self.sheet) Ghost command, removed to get rid of ghosts self.pelletsEaten = 0 self.fruit = None self.pause.force(True) self.text.showReady() self.text.updateLevel(self.level.level + 1) def restartLevel(self): #Restarts the game. self.pacman.reset() #self.ghosts = GhostGroup(self.nodes, self.sheet) Ghost command, removed to get rid of ghosts self.fruit = None self.pause.force(True) self.text.showReady() def update(self): #Where the game instances are run if not self.gameover: dt = self.clock.tick(300) / 300.0 # CHANGE TIME ( clock.tick( refresh rate ) / speed (lower number, higher speed) if not self.pause.paused: self.pacman.update(dt) #self.ghosts.update(dt, self.pacman) Stopper spøgelser med at opdaterer if self.fruit is not None: self.fruit.update(dt) if self.pause.pauseType != None: self.pause.settlePause(self) self.checkPelletEvents() #self.checkGhostEvents() Ghost command, removed to get rid of ghosts self.checkFruitEvents() self.pause.update(dt) self.pellets.update(dt) self.text.update(dt) self.checkEvents() self.text.updateScore(self.score) self.render() def checkEvents(self): #Simple commands while in game for event in pygame.event.get(): if event.type == QUIT: exit() elif self.gameover: self.startGame() #Spacebar is removed, and instead game just restarts automatically #elif event.type == KEYDOWN: # if event.key == K_SPACE: # if self.gameover: # self.startGame() # else: # self.pause.player() # if self.pause.paused: # self.text.showPause() # else: # self.text.hideMessages() def checkPelletEvents(self): #This section is in charge of checking if Pacman is on a pellet. pellet = self.pacman.eatPellets(self.pellets.pelletList) if pellet: self.pelletsEaten += 1 self.score += pellet.points if (self.pelletsEaten == 70 or self.pelletsEaten == 140): if self.fruit is None: self.fruit = Fruit(self.nodes, self.sheet) self.pellets.pelletList.remove(pellet) if pellet.name == "powerpellet": pass #self.ghosts.resetPoints() Ghost command, removed to get rid of ghosts #self.ghosts.freightMode() Ghost command, removed to get rid of ghosts if self.pellets.isEmpty(): self.pacman.visible = False #self.ghosts.hide() Ghost command, removed to get rid of ghosts self.pause.startTimer( 0.1, "clear" ) #Used to be 3, has been set to 0.1. No reset timer. def checkGhostEvents(self): #In charge of ghosts self.ghosts.release(self.pelletsEaten) ghost = self.pacman.eatGhost(self.ghosts) if ghost is not None: if ghost.mode.name == "FREIGHT": self.score += ghost.points self.text.createTemp(ghost.points, ghost.position) self.ghosts.updatePoints() ghost.spawnMode(speed=2) self.pause.startTimer(1) self.pacman.visible = False ghost.visible = False elif ghost.mode.name == "CHASE" or ghost.mode.name == "SCATTER": self.pacman.loseLife() self.ghosts.hide() self.pause.startTimer( 0.1, "die") #Death timer, set to 0 to optimize time. def checkFruitEvents(self): #basically in charge of fruits, in same way as above. if self.fruit is not None: if self.pacman.eatFruit(self.fruit): self.score += self.fruit.points self.text.createTemp(self.fruit.points, self.fruit.position) self.fruit = None elif self.fruit.destroy: self.fruit = None #if self.pacman.eatFruit(self.fruit) or self.fruit.destroy: #self.fruit = None def resolveDeath(self): #Checks if the game needs to end by keeping track of death tol if self.pacman.lives == 0: self.gameover = False #This should be true, but has been changed to remove lives from the game else: self.restartLevel() self.pause.pauseType = None def resolveLevelClear(self): #self.level.nextLevel() #self.startLevel() self.startGame() self.pause.pauseType = None def render(self): #In charge of rendering all characters, ghosts, pellets, ghosts etc... self.screen.blit(self.background, (0, 0)) #self.nodes.render(self.screen) (Not my doing) self.pellets.render(self.screen) if self.fruit is not None: self.fruit.render(self.screen) self.pacman.render(self.screen) #self.ghosts.render(self.screen) Ghost command, removed to get rid of ghosts self.pacman.renderLives(self.screen) self.text.render(self.screen) pygame.display.update()
class Game: def __init__(self): pygame.init() self.screen = pygame.display.set_mode(SCREENSIZE, 0, 1000) self.background = None self.background_flash = None self.setBackground() self.clock = pygame.time.Clock() self.pelletsEaten = 0 self.fruit = None self.sound = Sound(sound="sounds/pmanpellets.wav") self.sound.play() self.sound.pause_bg() # self.play_button, self.quit_button = None self.pause = Pauser(True) self.level = LevelController() self.text = TextGroup() self.score = 0 self.gameover = False self.sheet = Spritesheet() self.maze = Maze(self.sheet) self.flashBackground = False def setBackground(self): self.background = pygame.surface.Surface(SCREENSIZE).convert() self.background_flash = pygame.surface.Surface(SCREENSIZE).convert() self.background.fill(BLACK) # def show_menu(self): # self.play_button = Button(screen=self.screen, msg="Play", x=800, y=500) # self.quit_button = Button(screen=self.screen, msg="Quit", x=800, y=700) def play(self): print("Start game") # game_state = ts.GameState.TITLE # # while True: # if game_state is ts.GameState.TITLE: # game_state = ts.title_screen(self.screen) # # if game_state is ts.GameState.PlAY: self.level.reset() levelmap = self.level.getLevel() self.maze.getMaze(levelmap["name"].split(".")[0]) self.maze.constructMaze(self.background, self.background_flash, levelmap["row"]) self.nodes = NodeGroup(levelmap["name"]) self.pellets = PelletGroup(levelmap["name"]) self.pacman = Pacman(self.sound, self.nodes, self.sheet) self.ghosts = GhostGroup(self.nodes, self.sheet) self.pelletsEaten = 0 self.fruit = None self.pause.force(True) self.text.showReady() self.sound.intro() self.text.updateLevel(self.level.level + 1) self.gameover = False self.maze.reset() self.flashBackground = False # if game_state is ts.GameState.QUIT: # exit() def startLevel(self): print("Start new level") levelmap = self.level.getLevel() self.setBackground() self.maze.getMaze(levelmap["name"].split(".")[0]) self.maze.constructMaze(self.background, self.background_flash, levelmap["row"]) self.nodes = NodeGroup(levelmap["name"]) self.pellets = PelletGroup(levelmap["name"]) self.pacman.nodes = self.nodes self.pacman.reset() self.ghosts = GhostGroup(self.nodes, self.sheet) self.pelletsEaten = 0 self.fruit = None self.pause.force(True) self.text.showReady() self.sound.intro() self.text.updateLevel(self.level.level + 1) self.flashBackground = False self.maze.reset() def restartLevel(self): print("Restart current level") self.pacman.reset() self.ghosts = GhostGroup(self.nodes, self.sheet) self.pause.force(True) self.text.showReady() self.fruit = None self.flashBackground = False self.maze.reset() def update(self): if not self.gameover: dt = self.clock.tick(30) / 1000.0 if not self.pause.paused: self.pacman.update(dt) self.ghosts.update(dt, self.pacman) if self.fruit is not None: self.fruit.update(dt) if self.pause.pauseType != None: self.pause.settlePause(self) self.checkPelletEvents() self.checkGhostEvents() self.checkFruitEvents() else: if self.flashBackground: self.maze.flash(dt) if self.pacman.animateDeath: self.pacman.updateDeath(dt) self.pause.update(dt) self.pellets.update(dt) self.text.update(dt) self.checkEvents() self.text.updateScore(self.score) self.render() def checkEvents(self): for event in pygame.event.get(): if event.type == QUIT: exit() elif event.type == KEYDOWN: if event.key == K_SPACE: if self.gameover: self.play() else: self.pause.player() if self.pause.paused: self.text.showPause() else: self.text.hideMessages() def checkPelletEvents(self): pellet = self.pacman.eatPellets(self.pellets.pelletList) if pellet: self.sound.eat_pellets() self.pelletsEaten += 1 self.score += pellet.points if (self.pelletsEaten == 70 or self.pelletsEaten == 140): if self.fruit is None: levelmap = self.level.getLevel() self.fruit = Fruit(self.nodes, self.sheet, levelmap["fruit"]) self.pellets.pelletList.remove(pellet) if pellet.name == "powerpellet": self.ghosts.resetPoints() self.ghosts.freightMode() self.sound.strong_pac() if self.pellets.isEmpty(): self.pacman.visible = False self.ghosts.hide() self.pause.startTimer(3, "clear") self.flashBackground = True def checkGhostEvents(self): self.ghosts.release(self.pelletsEaten) ghost = self.pacman.eatGhost(self.ghosts) if ghost is not None: if ghost.mode.name == "FREIGHT": self.sound.eat_ghosts() self.score += ghost.points self.text.createTemp(ghost.points, ghost.position) self.ghosts.updatePoints() ghost.spawnMode(speed=2) self.pause.startTimer(1) self.pacman.visible = False ghost.visible = False elif ghost.mode.name != "SPAWN": self.pacman.loseLife() self.ghosts.hide() self.pause.startTimer(3, "die") def checkFruitEvents(self): if self.fruit is not None: if self.pacman.eatFruit(self.fruit): self.sound.eat_fruits() self.score += self.fruit.points self.text.createTemp(self.fruit.points, self.fruit.position) self.fruit = None elif self.fruit.destroy: self.fruit = None def resolveDeath(self): if self.pacman.lives == 0: self.gameover = True self.pacman.visible = False self.text.showGameOver() else: self.restartLevel() self.pause.pauseType = None def resolveLevelClear(self): self.level.nextLevel() self.startLevel() self.pause.pauseType = None def render(self): self.screen.blit(self.maze.background, (0, 0)) # self.nodes.render(self.screen) self.pellets.render(self.screen) if self.fruit is not None: self.fruit.render(self.screen) self.pacman.render(self.screen) self.ghosts.render(self.screen) self.pacman.renderLives(self.screen) self.text.render(self.screen) pygame.display.update()