Пример #1
0
    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()
Пример #2
0
    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()
Пример #3
0
    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"])
Пример #4
0
    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()
Пример #5
0
    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()
Пример #6
0
    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)
Пример #7
0
    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)
Пример #8
0
    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()