Exemple #1
0
def run_game():
    #初始化游戏并创建一个屏幕对象
    pygame.init()
    #创建Settings实例存储在ai_settings变量中
    ai_settings = Settings()
    #使用ai_settings的属性screen_width和screen_height
    screen = pygame.display.set_mode(
        (ai_settings.screen_width, ai_settings.screen_height))
    pygame.display.set_caption("Alien Invasion")
    #创建一艘飞船
    #需要传入实参ai_settings
    ship = Ship(ai_settings, screen)
    #创建一个用于存储子弹的编组
    #pygame.sprite.Group类创建一个编组,存储所有有效子弹,类似列表。
    bullets = Group()
    #创建一个外星人编组
    aliens = Group()
    #创建外星人群
    gf.create_fleet(ai_settings, screen, ship, aliens)
    #开始游戏的循环
    while True:
        #主循环检查玩家的输入
        gf.check_events(ai_settings, screen, ship, bullets)
        #更新飞船的位置
        ship.update()
        #所有未消失的子弹位置
        gf.update_bullets(aliens, bullets)
        gf.update_aliens(ai_settings, aliens)
        #使用更新后的位置来绘制新屏幕
        gf.update_screen(ai_settings, screen, ship, aliens, bullets)
def run_game():
    #初始化游戏并创建一个屏幕对象
    pygame.init()
    #创建Settings实例存储在ai_settings变量中
    ai_settings = Settings()
    #使用ai_settings的属性screen_width和screen_height
    screen = pygame.display.set_mode(
        (ai_settings.screen_width,ai_settings.screen_height)
    )
    pygame.display.set_caption("Alien Invasion")
    #创建一艘飞船
    #需要传入实参ai_settings
    ship = Ship(ai_settings,screen)
    #创建一个用于存储子弹的编组
    #pygame.sprite.Group类创建一个编组,存储所有有效子弹,类似列表。
    bullets = Group()
    #开始游戏的循环
    while True:
        gf.check_events(ai_settings,screen,ship,bullets)
        #飞船的位置在检测到键盘事件后(但在更新屏幕前)更新。
        ship.update()
        #当对编组调用update()时,编组将自动对其中每个精灵(子弹)调用update()
        bullets.update()
        #删除已消失的子弹
        #不应从列表或编组中删除条目,因此必须遍历编组的副本
        #我们使用了方法copy()来设置for循环
        for bullet in bullets.copy():
            #检查每颗子弹,看看它是否已从屏幕消失。
            if bullet.rect.bottom <= 0:
                #从bullets中删除
                bullets.remove(bullet)
                #显示还有多少子弹
                print(len(bullets))
        gf.update_screen(ai_settings,screen,ship,bullets)
Exemple #3
0
def run_game():
    #初始化游戏并创建一个屏幕对象
    pygame.init()
    #创建Settings实例存储在ai_settings变量中
    ai_settings = Settings()
    #使用ai_settings的属性screen_width和screen_height
    screen = pygame.display.set_mode(
        (ai_settings.screen_width, ai_settings.screen_height))
    pygame.display.set_caption("Alien Invasion")
    #创建一艘飞船
    #需要传入实参ai_settings
    ship = Ship(ai_settings, screen)
    #开始游戏的循环
    while True:
        gf.check_events(ship)
        #飞船的位置在检测到键盘事件后(但在更新屏幕前)更新。
        ship.update()
        gf.update_screen(ai_settings, screen, ship)
Exemple #4
0
def run_game():
    #初始化游戏并创建一个屏幕对象
    pygame.init()
    #创建Settings实例存储在ai_settings变量中
    ai_settings = Settings()
    #使用ai_settings的属性screen_width和screen_height
    screen = pygame.display.set_mode(
        (ai_settings.screen_width, ai_settings.screen_height))
    pygame.display.set_caption("Alien Invasion")
    #创建一艘飞船
    #需要传入实参ai_settings
    ship = Ship(ai_settings, screen)
    #创建一个用于存储子弹的编组
    #pygame.sprite.Group类创建一个编组,存储所有有效子弹,类似列表。
    bullets = Group()
    #开始游戏的循环
    while True:
        gf.check_events(ai_settings, screen, ship, bullets)
        #飞船的位置在检测到键盘事件后(但在更新屏幕前)更新。
        ship.update()
        #当对编组调用update()时,编组将自动对其中每个精灵(子弹)调用update()
        bullets.update()
        gf.update_screen(ai_settings, screen, ship, bullets)