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

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

    #创建一艘飞船,一个子弹编组和一个外星人编组
    ship = Ship(ai_settings, screen)
    bullets = Group()
    aliens = Group()
    #创建外星人群
    gf.create_fleet(ai_settings, screen, ship, aliens)

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

        if stats.game_active:
            ship.update()
            #bullets.update()
            gf.update_bullets(ai_settings, screen, ship, aliens, bullets)
            #在终端打印当前屏幕存在的子弹数量
            #print(len(bullets))
            gf.update_aliens(ai_settings, stats, screen, ship, aliens, bullets)
        gf.update_screen(ai_settings, screen, ship, aliens, bullets)
def run_game():
    #初始化游戏并创建一个屏幕对象
    pygame.init()
    '''load game settings'''
    ai_settings = Settings()

    screen = pygame.display.set_mode(
        (ai_settings.screen_width, ai_settings.screen_height))
    pygame.display.set_caption(ai_settings.caption)
    '''create a ship'''
    ship = Ship(ai_settings, screen)
    '''init a allien group'''
    aliens = Group()
    gf.create_fleet(ai_settings, screen, ship, aliens)
    '''create a group to store all bullets'''
    bullets = Group()

    #init a stats object
    stats = GameStates(ai_settings)

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

        if stats.game_active:
            gf.update_ship(ship)

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

            print(len(bullets))
            gf.update_screen(ai_settings, screen, ship, aliens, bullets)
Example #3
0
def run_game():
    #初始化屏幕并且创建一个屏幕对象
    pygame.init()  #初始化
    ai_settings = Setting()
    screen = pygame.display.set_mode(
        (ai_settings.screen_width,
         ai_settings.screen_height))  #创建了一个屏幕对象screen设置屏幕大小
    bg_color = (ai_settings.screen_color)  #设置背景颜色
    pygame.display.set_caption("Super_ship")  #设置屏幕框显示的文字
    ship = Ship(ai_settings, screen)  #创建一艘飞船,不可以放在while循环中
    ship_height = ship.rect.height
    bullets = Group()
    aliens = Group()
    gf.creat_fleet(ai_settings, screen, aliens, ship_height)
    stats = GameStates(ai_settings)
    ship_limit = stats.ai_settings.ship_limit
    #开始游戏的主循环
    while True:  #每经过一次循环就刷新一下屏幕
        #监视键盘和鼠标事件
        gf.check_events(ai_settings, screen, ship, bullets)
        ship.update()
        gf.update_aliens(ai_settings, aliens, ship, bullets, stats, screen,
                         ship_height)
        gf.update_bullets(ai_settings, screen, ship, bullets, aliens,
                          ship_height)
        gf.update_screen(
            ai_settings, screen, ship, bullets,
            aliens)  #每次循环都会重新绘制屏幕 #必须先进行填充背景色#将飞船放置在底端中间#让最近绘制的屏幕可见
Example #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")

    # 创建Play按钮
    play_button = Button(ai_settings, screen, "Play")

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

    # 创建一搜飞船
    ship = Ship(ai_settings, screen)
    # 创建一个用于存储子弹的编组
    bullets = Group()
    # 创建外星人编组
    aliens = Group()

    # 创建外星人群
    gf.create_fleet(ai_settings, screen, ship, aliens)

    # 开始游戏循环主体
    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)
def run_game():
    # 初始化游戏并创建一个屏幕对象
    pygame.init()
    ai_settings = Settings()
    screen = pygame.display.set_mode(
        (ai_settings.screen_width, ai_settings.screen_height))
    ship = Ship(ai_settings, screen)
    pygame.display.set_caption("Alien Invasion")
    stats = GameStates(ai_settings)
    # 创建一个用于存储子弹的编组
    bullets = Group()
    aliens = Group()
    gf.create_fleet(ai_settings, screen, aliens, ship)
    play_button = Button(screen, "Play!")
    scoreboard = Scoreboard(screen, stats, ai_settings)
    # 开始游戏的主循环
    while True:
        # 监视键盘和鼠标事件
        gf.check_events(scoreboard, ai_settings, screen, ship, bullets,
                        play_button, stats, aliens, bullets)
        if stats.game_active:
            ship.update()
            gf.update_bullets(stats, scoreboard, ai_settings, bullets, aliens,
                              screen, ship)
            gf.update_aliens(scoreboard, ai_settings, ship, aliens, stats,
                             bullets, screen)
        gf.update_screen(ai_settings, screen, ship, aliens, bullets,
                         play_button, stats, scoreboard)
Example #6
0
def run_game():
    #初始化游戏并创建一个屏幕对象
    pygame.init()
    ai_settings = Settings()
    screen = pygame.display.set_mode(
        (ai_settings.screen_width, ai_settings.screen_height))
    ship = Ship(ai_settings, screen)
    alien = Alien(ai_settings, screen)
    #创建一个用于存储子弹的编组
    bullets = Group()
    aliens = Group()

    #创建外星人群
    gf.create_fleet(ai_settings, screen, ship, aliens)
    #创建用于存储游戏统计信息的实例
    stats = GameStates(ai_settings)

    #创建游戏开始的按钮
    play_button = Button(ai_settings, screen, "Play")

    #游戏主循环
    while True:
        gf.check_events(ai_settings, screen, stats, play_button, ship, aliens,
                        bullets)
        if stats.game_active:
            ship.update()
            gf.update_bullets(ai_settings, screen, ship, aliens, bullets)
            gf.update_aliens(ai_settings, stats, screen, ship, aliens, bullets)
        #每次循环都重绘屏幕
        gf.update_screen(ai_settings, screen, stats, ship, aliens, bullets,
                         play_button)
    def __init__(self):
        pygame.init()
        self.settings = Settings()
        self.screen = pygame.display.set_mode(
            (self.settings.screen_width, self.settings.screen_height))
        pygame.display.set_caption("Alien Invasion")
        self.stats = GameStates(self)
        self.ship = Ship(self)
        self.bullets = pygame.sprite.Group()
        self.aliens = pygame.sprite.Group()

        self._create_fleet()

        self.play_button = Button(self, "Play")
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")
    #创建Play按钮
    play_button = Button(ai_settings, screen, "Play")

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

    #创建一艘飞船
    ship = Ship(ai_settings, screen)
    #创造一个用于存储子弹的编组
    bullets = Group()
    aliens = Group()

    #创建外星人群
    gf.create_fleet(ai_settings, screen, ship, aliens)

    bg_color = (230, 230, 230)

    #alien = Alien(ai_settings,screen)

    #开始游戏的主循环
    while True:

        #监视键盘和鼠标事件
        gf.check_events(ai_settings, screen, stats, sb, play_button, ship,
                        aliens, bullets)

        if stats.ship_left > 0:
            ship.update()
            gf.update_bullets(ai_settings, screen, stats, sb, ship, aliens,
                              bullets)
            gf.update_alien(ai_settings, screen, stats, sb, ship, aliens,
                            bullets)
            #print(len(bullets))

        gf.update_screen(ai_settings, screen, stats, sb, ship, aliens, bullets,
                         play_button)

        #让最近绘制的屏幕可见
        pygame.display.flip()
Example #9
0
def run_game():
    """Initialise game and create an object of the game"""

    pygame.init()
    ai_settings = Settings()
    screen = pygame.display.set_mode(
        (ai_settings.screen_height, ai_settings.screen_height))

    pygame.display.set_caption("Alien Invasion")

    # Make a ship
    ship = Ship(ai_settings, screen)
    # Storing bullet as groups
    bullets = Group()
    # Make an alien
    alien = Alien(ai_settings, screen)
    # Storing alien as groups
    aliens = Group()
    # creating fleets
    gf.create_fleet(ai_settings, screen, ship, aliens)
    # Make gaming instances and score instances
    stats = GameStates(ai_settings)
    sb = Scoreboard(ai_settings, screen, stats)
    # Make a play button
    play_button = Button(ai_settings, screen, "Play")

    # Start the main loop for the program
    while True:
        # using the check_events module from game_functions.py
        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)
    def __init__(self):
        #Initialize the game, and create game resorces

        pygame.init()
        self.settings = Settings()

        #create screen
        self.screen = pygame.display.set_mode(
            (self.settings.screen_width, self.settings.screen_height))
        pygame.display.set_caption("Alien Invasion")

        #Create an instance to store game statistics, and create a scoreboard.
        self.stats = GameStates(self)
        self.sb = Scoreboard(self)

        self.ship = Ship(self)
        self.bullets = pygame.sprite.Group()
        self.aliens = pygame.sprite.Group()

        self._create_fleet()

        #Make the Play button
        self.play_button = Button(self, "Play")
Example #11
0
def run_game():
    #初始化pygame、设置和屏幕对象
    pygame.init()
    ai_settings = Settings()
    screen = pygame.display.set_mode(
        (ai_settings.screen_width, ai_settings.screen_height))
    pygame.display.set_caption("Alien Invasion")

    #创建play按钮
    play_button = Button(ai_settings, screen, 'Play')

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

    #创建一艘飞船、一个子弹编组、一个外星人编组
    ship = Ship(ai_settings, screen)
    bullets = Group()
    aliens = Group()

    #创建外星人群
    gf.create_fleet(ai_settings, screen, ship, aliens)

    #开始游戏的主循环
    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)
Example #12
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")

    play_button = Button(ai_settings, screen, "Play")
    stats = GameStates(ai_settings)
    sb = Scoreboard(ai_settings, screen, stats)
    ship = Ship(ai_settings, screen)
    bullets = Group()
    aliens = Group()
    gf.create_fleet(ai_settings, screen, ship, aliens)
    while True:
        gf.check_events(ai_settings, stats, screen, play_button, ship, aliens,
                        bullets)
        if stats.game_active:
            ship.update()
            gf.update_bullets(ai_settings, stats, sb, screen, ship, aliens,
                              bullets)
            gf.update_aliens(ai_settings, stats, screen, ship, aliens, bullets)
        gf.update_screen(ai_settings, stats, sb, screen, ship, aliens, bullets,
                         play_button)