class Hub: """ HUB class, provide a central place to hold all the properties that are constantly being accessed """ def __init__(self): """ Initializing properties """ self.CLOCK = pygame.time.Clock() self.WINDOW_WIDTH = 1280 self.WINDOW_HEIGHT = 720 self.BG_COLOR = (125, 125, 125) self.main_screen = pygame.display.set_mode((self.WINDOW_WIDTH, self.WINDOW_HEIGHT)) self.game_mode = GameMode(self) self.shoot_sound = pygame.mixer.Sound('wav/Laser.wav') self.enemy_dies_sound = pygame.mixer.Sound('wav/Enemy_Dies.wav') self.controller = { 'up': False, 'down': False, 'left': False, 'right': False } self.game_screen = GameScreen(self) def displayscreen(self): self.game_screen.run()
class Hub: """ HUB class, provide a central place to hold all the properties that are constantly being accessed """ def __init__(self): """ Initializing properties """ self.WINDOW_WIDTH = 1280 self.WINDOW_HEIGHT = 720 self.BG_COLOR = (125, 125, 125) self.main_screen = pygame.display.set_mode((self.WINDOW_WIDTH, self.WINDOW_HEIGHT)) self.WINDOW_TITLE = "Space Invader by Randy Le" self.CLOCK = pygame.time.Clock() self.game_mode = GameMode(self) self.shoot_sound = pygame.mixer.Sound('wav/Laser.wav') self.enemy_dies_sound = pygame.mixer.Sound('wav/Enemy_Dies.wav') self.bg_music = pygame.mixer.Sound('wav/bg_music.wav') self.prep_sounds() self.play_bg_music() self.controller = { 'up': False, 'down': False, 'left': False, 'right': False, 'shooting': False } self.delayShot = 360 self.nextShot = pygame.time.get_ticks() + self.delayShot self.game_screen = GameScreen(self) self.main_menu_screen = MainMenuScreen(self) self.high_score_screen = HighScoreScreen(self) self.screen_type = { 'GameScreen': 1, 'MainMenuScreen': 2, 'HighScoreScreen': 3 } self.screen_mode = 2 self.high_score_board = [400, 600, 300, 25, 120, 1500] def displayscreen(self): # Display Game Screen if self.screen_mode == 1: self.game_screen.run() elif self.screen_mode == 2: self.main_menu_screen.run() # Display Main Menu Screen elif self.screen_mode == 3: self.high_score_screen.run() def prep_sounds(self): pygame.mixer.music.set_volume(0.1) self.enemy_dies_sound.set_volume(0.2) self.shoot_sound.set_volume(0.2) def play_bg_music(self): pygame.mixer.music.load('wav/bg_music.wav') pygame.mixer.music.play(-1, 0.0)
class Hub: """ Hub class, provides a central module to hold all the propertie that are constantly being accessed """ def __init__(self): """ Initialize default values """ self.CLOCK = pygame.time.Clock() self.WINDOW_WIDTH = 1080 self.WINDOW_HEIGHT = 720 self.WINDOW_TITLE = "Legend of Peach" self.WINDOW_ICON = pygame.image.load('imgs/WINDOW_ICON.png') self.BG_COLOR = (0, 0, 0) self.FRAMERATE = 30 self.speed = 0 # PHYSICS VALUES self.GRAVITY = 10 self.velocityAI = 5 # DEBUG MODE self.modeFreeze = False self.modePlace = False # Load mario levels from mario level self.game_levels = self.get_levels() self.gamemode = GameMode(self) self.controller = Controller(self) self.camera = Camera(self) # STATES self.WALK = 'WALK' self.LEFT = 'LEFT' self.RIGHT = 'RIGHT' self.STOMPED = 'STOMPED' self.STAND = 'STAND' self.SHELL = 'SHELL' self.SLIDE = 'SLIDE' self.HIT = 'HIT' self.DEATHFALL = 'DEATHFALL' # Brick States self.RESTING = 'RESTING' self.BUMPED = 'BUMPED' self.OPENED = 'OPENED' """ Initialize the type of screen possible to display game_screen is the only one that will probably be reinstance everytime a new level opens. """ self.main_screen = pygame.display.set_mode( (self.WINDOW_WIDTH, self.WINDOW_HEIGHT)) self.main_menu_screen = MainMenuScreen(self) self.level_screen = LevelSelectionScreen(self) self.game_screen = GameScreen(self) # Screen selector chooses what screen to display self.screen_selector = 1 self.level_name = '' def display_screen(self): if self.screen_selector is 1: self.main_menu_screen.run() elif self.screen_selector is 2: self.level_screen.run() elif self.screen_selector is 3: # display gameover screen pass elif self.screen_selector is 0: # runs the game screen self.game_screen.run() if self.gamemode.mario_is_dead: self.open_level(self.level_name) self.gamemode.mario_is_dead = False def exit_game(self): pygame.quit() sys.exit() def get_levels(self): """ Grab the level data from the JSON file""" filename = 'levels.json' with open(filename, 'r') as read_file: data = json.load(read_file) return data def open_level(self, level_name, world_offset=0): print('new game_screen instantiated') self.game_screen = GameScreen(self, level_name) self.level_name = level_name self.camera.reset_camera() self.camera.world_offset_x = world_offset