def __init__(self, starting_level=None): self.settings = Settings(constants.DEFAULT_SETTINGS, "game") self.font_manager = FontManager() self.sound_manager = SoundManager(self.settings) self.sound_manager.trigger_music("movemovemove.ogg", 0.7) self.levels = [] # this is dumb :P for i in xrange(1, 10000): try: level = level_loader.load_level(i, self) self.levels.append(level.name) except: break if starting_level is not None: self.current_level = starting_level self.max_level = self.current_level self.stage = STAGE_LEVEL self.restart_level() self.menu = None else: self.current_level = 1 self.max_level = self.current_level self.stage = STAGE_MENU self.level = None self.menu = menu.MainMenu(self, None) self.menu_stack = [] self.events = [] self.should_quit = False self.victory = None
def __init__(self): """Initializes game data.""" # Player starts at the center player = Player(WINDOW_WIDTH // 2, 25, PLAYER_VERTICES, COLOR_PLAYER, PLAYER_START_HP, PLAYER_START_SHIELDS, 1) self.do_the_thing = True self.object_container = GameObjectContainer(player) self.clock = pygame.time.Clock() # TODO Make level into an array of levels, and once the player finishes a level, move to the next one self.level = load_level("level1") # Maye sometime later, add more levels self.timer = 0 pygame.display.init() pygame.display.set_mode((WINDOW_WIDTH, WINDOW_HEIGHT), DOUBLEBUF | OPENGL) pygame.display.set_caption('Shitty Shooting Game') glClearColor(0.0, 0.0, 0.0, 1.0) for obstacle in self.level: if obstacle["type"] == OBSTACLE_WALL: new_wall = Wall(WINDOW_WIDTH // 2, 0, obstacle["data"], COLOR_WALL) self.object_container.walls.append(new_wall) elif obstacle["type"] == OBSTACLE_ENEMY: x, y = obstacle["data"] new_enemy = Enemy(x, y, ENEMY_VERTICES, COLOR_ENEMY, 2, 2) self.object_container.enemies.append(new_enemy) # self.object_container.enemies.append(obstacle["data"]) self.clock.tick()
def restart_level(self): self.hot_swap(level_loader) self.level = level_loader.load_level(self.current_level, self)