コード例 #1
0
ファイル: hub.py プロジェクト: RandyKoiSA/Space_Invasion
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()
コード例 #2
0
ファイル: hub.py プロジェクト: leerichoang/Legend-Of-Peach
    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
        self.velocityMushroom = 5
        self.velocityStar = 10

        # 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)

        # Screen selector chooses what screen to display
        self.screen_selector = 1
        self.level_name = ''

        # 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'
        self.RISE = "RISE"
        self.FALL = "FALL"
        # 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.sound_board = SoundBoard()
        self.main_screen = pygame.display.set_mode((self.WINDOW_WIDTH, self.WINDOW_HEIGHT))
        self.hud_screen = HudScreen(self)
        self.main_menu_screen = MainMenuScreen(self)
        self.level_screen = LevelSelectionScreen(self)
        self.game_screen = GameScreen(self)
コード例 #3
0
ファイル: main.py プロジェクト: thejsj/Frank-y-Bird
    def __init__(self):
        # Define all game state variables
        self.welcome_screen = WelcomeScreen()
        self.game_screen = GameScreen()
        self.game_over_screen = GameOverScreen()
        self.difficulty = Difficulty(self.setOptions)

        self.points = 0
        self.done = False
        self.alert_loss = False

        self.settings = Settings()
        self.settings.set('hTime', 0.3)

        # Define all the Curses stuff
        curses.initscr()
        curses.start_color()

        curses.init_pair(1, curses.COLOR_BLACK, curses.COLOR_WHITE)
        curses.init_pair(2, curses.COLOR_WHITE, curses.COLOR_BLACK)
        curses.init_pair(3, curses.COLOR_RED, curses.COLOR_BLACK)

        self.screen = curses.newwin(0, 0)
        self.screen.keypad(1)
        self.screen.nodelay(1)
        
        curses.noecho()
        curses.cbreak()
        curses.curs_set(0)
コード例 #4
0
ファイル: hub.py プロジェクト: leerichoang/Legend-Of-Peach
    def open_level(self, level_name, world_offset=0):
        """ Opens new gamee_screen and level"""
        print('new game_screen instantiated')
        self.game_screen = GameScreen(self, level_name)
        self.level_name = level_name
        theme = self.game_levels[level_name]["theme"]
        self.camera.reset_camera()
        self.camera.world_offset_x = world_offset

        if theme is "0":
            self.sound_board.play_main_theme_overworld()
        elif theme is "1":
            self.sound_board.play_underworld()
        elif theme is "2":
            self.sound_board.play_castle()
        else:
            self.sound_board.play_main_theme_overworld()
コード例 #5
0
    def update(self, delta_time):
        '''
        '''

        super().update(delta_time)

        if event_handler.is_key_pressed(pygame.K_RETURN):
            Screen.load_screen(GameScreen())
コード例 #6
0
    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]
コード例 #7
0
ファイル: hub.py プロジェクト: RandyKoiSA/Space_Invasion
    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)
コード例 #8
0
 def check_buttons_clicked(self, mouse_x, mouse_y):
     if self.play_button.rect.collidepoint(mouse_x, mouse_y):
         self.hub.screen_mode = self.hub.screen_type['GameScreen']
         self.hub.game_screen = GameScreen(self.hub)
         self.hub.game_mode.reset_stats()
     if self.exit_button.rect.collidepoint(mouse_x, mouse_y):
         pygame.quit()
         sys.exit()
     if self.high_score_button.rect.collidepoint(mouse_x, mouse_y):
         self.hub.screen_mode = self.hub.screen_type['HighScoreScreen']
         self.hub.high_score_board.sort(reverse=True)
         self.hub.high_score_screen.update_score()
コード例 #9
0
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)
コード例 #10
0
 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
コード例 #11
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
コード例 #12
0
ファイル: main.py プロジェクト: thejsj/Frank-y-Bird
class App(object):

    def __init__(self):
        # Define all game state variables
        self.welcome_screen = WelcomeScreen()
        self.game_screen = GameScreen()
        self.game_over_screen = GameOverScreen()
        self.difficulty = Difficulty(self.setOptions)

        self.points = 0
        self.done = False
        self.alert_loss = False

        self.settings = Settings()
        self.settings.set('hTime', 0.3)

        # Define all the Curses stuff
        curses.initscr()
        curses.start_color()

        curses.init_pair(1, curses.COLOR_BLACK, curses.COLOR_WHITE)
        curses.init_pair(2, curses.COLOR_WHITE, curses.COLOR_BLACK)
        curses.init_pair(3, curses.COLOR_RED, curses.COLOR_BLACK)

        self.screen = curses.newwin(0, 0)
        self.screen.keypad(1)
        self.screen.nodelay(1)
        
        curses.noecho()
        curses.cbreak()
        curses.curs_set(0)

    def setOptions(self):
        self.settings.set('hTime', self.difficulty.getHTime())
        self.settings.set('obsWidth',10)
        self.settings.set('obsHoleHeigth', 7)
        self.settings.set('obsSpacing',15)

        self.game_screen.initGame(self.settings) 

    def deinit(self):
        self.screen.nodelay(0)
        self.screen.keypad(0)
        
        curses.nocbreak()
        curses.echo()
        curses.curs_set(1)
        curses.endwin()
        sys.exit(1)

    # Event Loop Functions

    def events(self):
        # Global Events
        key = self.screen.getch()
        if key == K_ESCAPE or key is K_Q:
            self.deinit()

        # State-depent events
        if not self.difficulty:
            self.difficulty.set(self.welcome_screen.events(key))
        else:
            self.game_screen.events(key)

    def update(self):

        if self.difficulty and not self.done:
            self.done, self.points = self.game_screen.update(self.screen, self.settings)

        if self.done:

            # Alert Loss Once
            if not self.alert_loss:
                curses.flash()
                curses.beep()
                curses.init_pair(2, curses.COLOR_RED, curses.COLOR_BLACK)
                self.alert_loss = True

    def render(self):
        self.screen.erase()

        # Render Current State
        if not self.difficulty:
            self.welcome_screen.screen(self.screen)
        else:
            self.game_screen.screen(self.screen, self.settings)
            if self.done:
                self.game_over_screen.screen(self.screen, self.points)

        # Refresh and Loop
        self.screen.refresh()
        time.sleep(self.settings.get('hTime'))

    def loop(self):
        while True:
            self.events()
            self.update()
            self.render()