예제 #1
0
def run_game():
    #初始化游戏并创建一个屏幕对象
    pygame.init()
    ai_settings = Settings()
    screen = pygame.display.set_mode(
        (ai_settings.screen_width, ai_settings.screen_height))
    pygame.display.set_caption('Alien Invasion')  #game window title
    ship = Ship(ai_settings, screen)  #creat a ship
    bullets = Group()
    aliens = Group()
    stats = GameStats(ai_settings)
    play_button = Button(ai_settings, screen, "Play")
    sb = Scoreboard(ai_settings, screen, stats)

    #creat alien group
    game_functions.creat_fleet(ai_settings, screen, ship, aliens)
    game_functions.read_high_score(stats, sb)

    #游戏主循环
    while True:
        #键盘和鼠标事件
        game_functions.check_events(ai_settings, screen, stats, ship, aliens,
                                    bullets, sb, play_button)

        if stats.game_active:
            ship.update()
            game_functions.update_bullets(ai_settings, screen, stats, ship,
                                          aliens, bullets, sb)
            game_functions.update_aliens(ai_settings, stats, screen, ship,
                                         aliens, bullets, sb)

        game_functions.update_screen(ai_settings, screen, stats, ship, aliens,
                                     bullets, sb, play_button)
예제 #2
0
def run_game():
    """运行游戏方法"""
    #initial the game and create a screen object
    pygame.init()
    #创建 Setting 实例
    ai_settings = Settings()
    screen = pygame.display.set_mode(
        (ai_settings.screen_width, ai_settings.screen_height))
    pygame.display.set_caption("Alien Invasion")

    #创建开始按钮
    play_button = Button(ai_settings, screen, "PLAY!")

    #创建一个用于存储游戏统计信息的实例
    stats = GameStates(ai_settings)
    sb = Scoreboard(ai_settings, screen, stats)

    #创建一个飞船
    ship = Ship(ai_settings, screen)

    #创建一个存储子弹的编组 Group
    bullets = Group()

    #创建一个外星人
    aliens = Group()
    gf.create_fleet(ai_settings, screen, ship, aliens)

    #读取历史最高分
    gf.read_high_score(stats)
    sb.prep_high_score()

    #The main loop
    while True:
        #检查玩家输入
        gf.check_events(ai_settings, screen, stats, sb, play_button, ship,
                        aliens, bullets)

        #游戏主体需要启动方可运行
        if stats.game_active:
            #更新飞船
            ship.update()
            #更新子弹
            gf.update_bullet(ai_settings, screen, stats, sb, ship, aliens,
                             bullets)
            gf.update_aliens(ai_settings, stats, sb, screen, ship, aliens,
                             bullets)

        #重绘屏幕
        gf.update_screen(ai_settings, screen, stats, sb, ship, aliens, bullets,
                         play_button)
예제 #3
0
def run_game():
    pygame.init()

    #建立一个Settings的对象
    ai_settings = Settings()

    #调用对象内的参数
    screen = pygame.display.set_mode(
        (ai_settings.screen_width, ai_settings.screen_height))
    pygame.display.set_caption("Alien Invasion")

    play_button = Button(ai_settings, screen, "Play")

    ship = Ship(ai_settings, screen)

    bullets = Group()
    aliens = Group()

    #产生地人群
    gf.create_fleet(ai_settings, screen, ship, aliens)

    stats = GameStats(ai_settings)

    sb = Scoreboard(ai_settings, screen, stats)

    #stats.high_score = 777
    #gf.save_high_score(ai_settings, stats)

    gf.read_high_score(ai_settings, stats)
    sb.prep_high_score()

    while True:
        #检测退出信号
        gf.check_events(ai_settings, screen, stats, sb, play_button, ship,
                        aliens, bullets)

        if stats.game_active:
            ship.update()

            gf.update_bullets(ai_settings, screen, stats, sb, ship, aliens,
                              bullets)
            gf.update_aliens(ai_settings, screen, stats, sb, ship, aliens,
                             bullets)

        gf.update_screen(ai_settings, screen, stats, sb, ship, aliens, bullets,
                         play_button)
예제 #4
0
def run_game():
    # 初始化游戏并创建一个屏幕对象
    pygame.init()
    ai_settings = Settings()
    screen = pygame.display.set_mode(
        (ai_settings.screen_width, ai_settings.screen_height))
    pygame.display.set_caption("Alien Invasion ———— by 王胜")

    # 创建Play按钮
    play_button = Button(ai_settings, screen, "Play")
    # 创建一个用于存储游戏统计信息的实例
    stats = GameStats(ai_settings)
    # 在窗口右上角创建记分牌
    scoreboard = Scoreboard(ai_settings, screen, stats)
    # 创建一艘飞船
    ship = Ship(ai_settings, screen)
    #创建一个用于存储子弹的编组和一个外星人的编组
    bullets = Group()
    aliens = Group()

    gf.create_fleet(ai_settings, screen, aliens, ship)

    # 读取最高得分数据
    gf.read_high_score(stats, scoreboard)

    # 开始游戏的主循环
    while True:
        # 监视键盘和鼠标事件
        gf.check_events(ai_settings, screen, stats, play_button, ship, aliens,
                        bullets, scoreboard)

        if stats.game_active:
            ship.update()
            gf.update_bullets(ai_settings, screen, aliens, bullets, ship,
                              stats, scoreboard)
            gf.update_aliens(ai_settings, stats, screen, ship, aliens, bullets,
                             scoreboard)

        # 每次循环时都重绘屏幕,并切换到新屏幕
        gf.update_screen(ai_settings, stats, ship, screen, bullets, aliens,
                         play_button, scoreboard)
예제 #5
0
    def __init__(self, ai_settings):
        """初始化统计信息"""
        self.ai_settings = ai_settings
        self.reset_stats()

        # 游戏刚启动时处于非活动状态
        self.game_active = False

        # 在任何情况下都不应该重置最高分
        # 先从文件中读取,有则显示最高分,没有则显示0
        read_high_score = gf.read_high_score()
        print(read_high_score)
        if read_high_score.strip() == '':
            print(read_high_score+"为空")
            self.high_score = int(0)
        else:
            self.high_score = int(read_high_score)
            print(str(self.high_score)+"==最终结果")
예제 #6
0
def run_game():
    # innitialize game and creat a screen object.
    pygame.init()
    ai_settings = Settings()
    screen = pygame.display.set_mode(
        (ai_settings.screen_width, ai_settings.screen_height))
    pygame.display.set_caption("Alien Invasion")

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

    # Create an instance to store game statistics and create a scoreboard.
    stats = GameStats(ai_settings)
    sb = Scoreboard(ai_settings, screen, stats)
    # Make a ship, a group of bullets, and a group of aliens.
    ship = Ship(ai_settings, screen)
    bullets = Group()
    aliens = Group()

    # Create the fleet of aliens.
    gf.create_fleet(ai_settings, screen, ship, aliens)

    # get the high score
    stats.high_score = gf.read_high_score(stats)

    #start the main loop for the game.
    while True:
        gf.check_events(ai_settings, screen, stats, sb, play_button, ship,
                        aliens, bullets)

        if stats.game_active:
            ship.update()
            gf.update_bullets(ai_settings, screen, stats, sb, ship, aliens,
                              bullets)
            gf.update_aliens(ai_settings, screen, stats, sb, ship, aliens,
                             bullets)

        gf.update_screen(ai_settings, screen, stats, sb, ship, aliens, bullets,
                         play_button)
예제 #7
0
def run_game():
    """Main function to run game"""

    # Initialize game and create a screen object
    pygame.init()
    ai_settings = Settings()

    # Set screen width and height
    screen = pygame.display.set_mode(
        (ai_settings.screen_width, ai_settings.screen_height),
        pygame.RESIZABLE)
    pygame.display.set_caption("CharLee MacDennis 2: Electric Bugaloo")

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

    # Make the Puase button
    pause_button = Button(ai_settings, screen, "Paused")

    # Create an instance to store game statistics
    stats = GameStats(ai_settings)

    # Set stats.high_score to be equal to universal high score
    stats.high_score = gf.read_high_score()

    # Create a scoreboard
    sb = Scoreboard(ai_settings, screen, stats)

    # Make a ship, a group of ship bullets
    ship = Ship(ai_settings, screen)
    ship_bullets = Group()

    # Create alien and group of alien bullets
    aliens = Group()
    alien_bullets = Group()

    # Create the fleet of aliens
    gf.create_fleet(ai_settings, screen, ship, aliens)

    # Create clock for FPS limit
    clock = pygame.time.Clock()

    # Start the main game loop
    while True:
        # 60 fps
        clock.tick(120)

        # Watch for keyboard and mouse events
        gf.check_events(ai_settings, screen, stats, sb, play_button, ship,
                        aliens, ship_bullets, alien_bullets)

        if stats.game_active:

            # Update ship status
            ship.update()

            # Update all bullets on screen
            gf.update_bullets(ai_settings, screen, stats, sb, ship, aliens,
                              ship_bullets, alien_bullets)

            # Update aliens status
            gf.update_aliens(ai_settings, stats, screen, sb, ship, aliens,
                             ship_bullets, alien_bullets)

        # Draw and refresh the screen
        gf.update_screen(ai_settings, screen, stats, sb, ship, aliens,
                         ship_bullets, alien_bullets, play_button)
예제 #8
0
파일: game_stats.py 프로젝트: Tomames/alien
 def __init__(self, ai_settings):
     self.ai_settings = ai_settings
     self.reset_stats()
     self.game_active = False
     self.high_score = gf.read_high_score()