def __init__(self, display): self.display = display self.state = "load_game" self.game_reference = None # Background Setup self.background = pygame_gui.Image( paths.imagePath + "background-load.png", 0, 0) # GUI Setup self.back_button = pygame_gui.Button( paths.uiPath + "backwhite.png", paths.uiPath + "backwhite-hover.png", 5, 5) self.title = pygame_gui.Text("Select Level: ", constants.FONTS["sizes"]["large"], constants.FONTS["colour"], constants.FONTS["main"], 275, 55) self.file_selector = FileSelector(self, [275, 100]) self.try_delete = None # if True, displays delete_message, try's to delete file in to_delete if ok pressed self.to_delete = None self.page_back_button = pygame_gui.Button( paths.uiPath + "pageback.png", paths.uiPath + "pageback-hover.png", 670, 53) self.page_forward_button = pygame_gui.Button( paths.uiPath + "pageforward.png", paths.uiPath + "pageforward-hover.png", 710, 53) self.run()
def __init__(self, display): self.display = display self.state = "load_game" self.game_reference = None # Background Setup self.background = pygame_gui.Image(paths.uiMenuPath + "background.png", 0, 0) self.back_panel = pygame_gui.Panel([100, 100, 800, 500], 150, constants.COLOURS["panel"]) # GUI Setup self.back_button = pygame_gui.Button( paths.uiPath + "backwhite.png", paths.uiPath + "backwhite-hover.png", 5, 5) self.title = pygame_gui.Text("Select Game: ", constants.FONTS["sizes"]["large"], constants.FONTS["colour"], constants.FONTS["main"], 110, 110) self.file_selector = FileSelector(self, [250, 150]) self.try_delete = None # if True, displays delete_message, try's to delete file in to_delete if ok pressed self.to_delete = None self.delete_message = GUI.CheckMessage(self, "Are You Sure?", [ "The game will be permanently deleted,", "and can't be recovered!" ]) self.page_back_button = pygame_gui.Button( paths.uiPath + "pageback.png", paths.uiPath + "pageback-hover.png", 820, 550) self.page_forward_button = pygame_gui.Button( paths.uiPath + "pageforward.png", paths.uiPath + "pageforward-hover.png", 860, 550) self.run()
def __init__(self, map_name): # Game Setup self.map_name = map_name self.level = game.Level(self.map_name) self.state = "game" # Display Setup self.display = pygame.display.set_mode(self.level.DISPLAY_SIZE) # adapts to map size pygame.display.set_caption(constants.DISPLAY_NAME + " - " + os.path.basename(map_name)) self.clock = pygame.time.Clock() self.back_button = pygame_gui.Button(paths.uiPath + "backwhite.png", paths.uiPath + "backwhite-hover.png", 5, 5) # self.back_button.resize(self.level.TILE_SIZE, self.level.TILE_SIZE) # Player Setup spawn = game.get_pixel_position(self.level, self.level.get_spawn()) spawn = [position + self.level.PLAYER_PADDING/2 for position in spawn] # center player in tile self.player = game.UserPLayer(spawn, [0, 0], self.level) # Enemy Setup self.enemies = [] for enemy in self.level.enemies: if enemy["type"] == "er": self.enemies.append(game.RandomPatrol(self.level, enemy["spawn"])) elif enemy["type"] == "es": self.enemies.append(game.EnemySeeker(self.level, self.player, enemy["spawn"])) elif enemy["type"] == "ep": self.enemies.append(game.EnemyPatrol(self.level, enemy["patrol"])) else: raise exceptions.InvalidEnemyType("%s not recognised" % enemy["type"])
def __init__(self, display): self.display = display self.state = "leaderboard" # Background Setup self.background = pygame_gui.Image(paths.uiMenuPath + "background.png", 0, 0) self.back_panel = pygame_gui.Panel([100, 100, 800, 500], 150, constants.COLOURS["panel"]) # GUI Setup self.back = pygame_gui.Button(paths.uiPath + "backwhite.png", paths.uiPath + "backwhite-hover.png", 5, 5) self.title = pygame_gui.Text("Leaderboard: ", constants.FONTS["sizes"]["large"], constants.FONTS["colour"], constants.FONTS["main"], 110, 110) self.top_ten = pygame_gui.Text("(top 10)", constants.FONTS["sizes"]["large"], constants.FONTS["colour"], constants.FONTS["main"], 825, 110) self.rank_text = pygame_gui.Text("rank", constants.FONTS["sizes"]["medium"], constants.FONTS["colour"], constants.FONTS["main"], 310, 150) self.name_text = pygame_gui.Text("name", constants.FONTS["sizes"]["medium"], constants.FONTS["colour"], constants.FONTS["main"], 380, 150) self.score_text = pygame_gui.Text("score", constants.FONTS["sizes"]["medium"], constants.FONTS["colour"], constants.FONTS["main"], 605, 150) self.leaderboard_reader = LeaderboardEditor() self.slots = [] x, y = [300, 170] padding = 40 # between player slots rank = 1 for player in self.leaderboard_reader.get_high_scores(10): self.slots.append(LeaderboardSlot(player[0], player[1], rank, x, y)) y += padding rank += 1 self.run()
def __init__(self, x, y): self.x = x self.y = y self.path = paths.mapPath self.maps = [ filename.replace(".csv", "") for filename in os.listdir(self.path) ] # all files are .csv self.back_button = pygame_gui.Button( paths.uiPath + "pageback.png", paths.uiPath + "pageback-hover.png", self.x, self.y) self.map_text = pygame_gui.Text("", constants.FONTS["sizes"]["medium"], constants.FONTS["colour"], constants.FONTS["main"], self.x + 40, self.y + 5) self.forward_button = pygame_gui.Button( paths.uiPath + "pageforward.png", paths.uiPath + "pageforward-hover.png", self.x + 230, self.y) self.map_number = 0 # index of self.maps, the current selection. self.update()
def __init__(self, player_manager, origin, colour, name=""): self.player_manager = player_manager self.origin = origin self.colour = colour # Background self.back_panel = pygame_gui.Panel( [self.origin[0], self.origin[1], 500, 50], 100, constants.COLOURS["black"]) self.name_entry = pygame_gui.Entry( paths.uiMenuPath + "input-normal.png", paths.uiMenuPath + "input-normal-hover.png", paths.uiMenuPath + "input-normal-focused.png", paths.uiMenuPath + "input-normal-hover-focused.png", name, constants.FONTS["sizes"]["medium"], constants.FONTS["colour"], constants.FONTS["main"], 10, 5, True, self.origin[0] + 60, self.origin[1] + 10) self.delete_self = pygame_gui.Button(paths.uiPath + "cross.png", paths.uiPath + "cross-hover.png", self.origin[0] + 430, self.origin[1] + 8)
def __init__(self, control, game_name, position): self.control = control # Control in this case is the LoadGame object. self.game_name = game_name self.position = position # GUI Setup self.back_panel = pygame_gui.Panel( [self.position[0], self.position[1], 500, 50], 100, constants.COLOURS["panel"]) self.back_panel_hover = pygame_gui.Panel( [self.position[0], self.position[1], 500, 50], 50, constants.COLOURS["panel"]) self.text = pygame_gui.Text(game_name, constants.FONTS["sizes"]["medium"], constants.FONTS["colour"], constants.FONTS["main"], self.position[0] + 50, self.position[1] + 15) self.quit_button = pygame_gui.Button(paths.uiPath + "cross.png", paths.uiPath + "cross-hover.png", self.position[0] + 450, self.position[1] + 8)
def __init__(self, display): self.display = display self.state = "new_game" self.game_reference = None # Background Setup self.background = pygame_gui.Image(paths.uiMenuPath + "background.png", 0, 0) self.back_panel = pygame_gui.Panel([100, 100, 800, 500], 150, constants.COLOURS["panel"]) # GUI Setup self.origin = [150, 30] # General self.back_button = pygame_gui.Button( paths.uiPath + "backwhite.png", paths.uiPath + "backwhite-hover.png", 5, 5) self.title_text = pygame_gui.Text("Create Game:", constants.FONTS["sizes"]["large"], constants.FONTS["colour"], constants.FONTS["main"], 110, 110) self.play_button = pygame_gui.Button( paths.uiPath + "forwardwhite.png", paths.uiPath + "forwardwhite-hover.png", self.origin[0] + 700, self.origin[1] + 525) # Game Input Setup self.game_name_prompt = pygame_gui.Text( "Game Name:", constants.FONTS["sizes"]["medium"], constants.FONTS["colour"], constants.FONTS["main"], self.origin[0] + 100, self.origin[1] + 150) self.game_name_input = pygame_gui.Entry( paths.uiMenuPath + "input-large.png", paths.uiMenuPath + "input-large-hover.png", paths.uiMenuPath + "input-large-focused.png", paths.uiMenuPath + "input-large-hover-focused.png", "", constants.FONTS["sizes"]["medium"], constants.FONTS["colour"], constants.FONTS["main"], 10, 5, True, self.origin[0] + 250, self.origin[1] + 145) self.game_name_error_text = pygame_gui.Text( "", constants.FONTS["sizes"]["small"], constants.COLOURS["red"], constants.FONTS["main-bold-italic"], self.origin[0] + 250, self.origin[1] + 180) # Map Input Setup self.map_select_prompt = pygame_gui.Text( "Select Map:", constants.FONTS["sizes"]["medium"], constants.FONTS["colour"], constants.FONTS["main"], self.origin[0] + 100, self.origin[1] + 200) self.map_selector = MapSelector(self.origin[0] + 250, self.origin[1] + 200) # Player Input Setup self.players_prompt = pygame_gui.Text( "Players:", constants.FONTS["sizes"]["medium"], constants.FONTS["colour"], constants.FONTS["main"], self.origin[0] + 100, self.origin[1] + 250) self.player_slots_error = pygame_gui.Text( "", constants.FONTS["sizes"]["small"], constants.COLOURS["red"], constants.FONTS["main-bold-italic"], self.origin[0] + 200, self.origin[1] + 255) self.player_manager = PlayerManager( 4, [self.origin[0] + 100, self.origin[1] + 290]) self.run()