Пример #1
0
def run_game():
    # Initialize game, settings, and create a screen object.
    pygame.init()
    settings = Settings.getInstance()
    screen = pygame.display.set_mode(
        (settings.screen_width, settings.screen_height))
    pygame.display.set_caption(settings.window_caption)

    # Make the Play button.
    play_button = Button(screen, "Play")

    # Make Groupmanager
    em = EntityManager.getInstance()

    # Make ship
    ship = Ship(screen)
    em.add_single("ship", ship)

    # Make a group to store bullets in.
    em.add_group("bullets")

    # Make a group to store aliens in
    em.add_group("aliens")

    # Create statistics and scoreboard
    stats = GameStats()
    sb = Scoreboard(settings, screen, stats)

    # Load background.
    bg = BackGround()

    # Create explosions group
    em.add_group("explosions")

    # Start background music
    SoundManager.getInstance().play_music()

    # Make power up group
    em.add_group("power_ups")

    # Start the main loop for the game.
    while True:

        # Watch for keyboard and mouse events.
        gf.check_events(screen, stats, sb, play_button)

        if stats.game_active:
            em.update_singles()
            gf.update_bullets(screen, stats, sb)
            gf.update_aliens(screen, stats, sb)
            gf.update_explosions()
            gf.update_power_ups()

        gf.update_screen(screen, bg, stats, sb, play_button)
Пример #2
0
# Internal imports
from settings import Settings
from bullet import Bullet
from alien import Alien
from explosion import Explosion
from sound_manager import SoundManager
from entity_manager import EntityManager
from power_up import PowerUp
from settings import P_TYPE

# Singleton instance of Settings class
settings = Settings.getInstance()

# Singleton instance of Entity Manager class
ent_man = EntityManager.getInstance()


def check_keydown_events(event, screen):
    """Respond to keypresses."""
    ship = ent_man.get_single("ship")

    if event.key == pygame.K_RIGHT:
        ship.moving_right = True
    elif event.key == pygame.K_LEFT:
        ship.moving_left = True
    elif event.key == pygame.K_SPACE:
        fire_bullet(screen)
        SoundManager.getInstance().laser.play()
    elif event.key == pygame.K_q:
        sys.exit(0)