Example #1
0
def run_game():
    # initialize game and create a screen object
    pygame.init()
    f_settings = Setting()
    screen = pygame.display.set_mode((f_settings.screen_width, f_settings.screen_height))
    pygame.display.set_caption("Alien Attack!")
    # Make a fighter, a group of bullets and a group of aliens
    fighter = Fighter(f_settings, screen)
    aliens = Group()
    bullets = Group()

    # Create play button
    play_button = Button(f_settings, screen, "Play")

    # Create an instance to store game stats
    stats = GamesStats(f_settings)

    # Create the fleet of aliens
    gf.create_fleet(f_settings, screen, aliens, fighter)

    # Create scoreboard
    sb = Scoreboard(f_settings, screen, stats, fighter)

    # Start the main loop for the game.
    while True:
        gf.check_events(f_settings, screen, aliens, fighter, bullets, play_button, stats, sb)
        if stats.game_active:
            fighter.position()
            gf.update_bullets(f_settings, screen, stats, fighter, bullets, aliens, sb)
            gf.update_aliens(f_settings, screen, aliens, fighter, bullets, stats, sb)
        gf.screen_update(f_settings, screen, fighter, bullets, aliens, stats, play_button, sb)
def run_game():
    # 初始化pygame、设置和屏幕对象
    pygame.init()
    ai_settings = Settings()  # 定义类
    screen = pygame.display.set_mode((
        ai_settings.screen_width, ai_settings.screen_height))

    # screen = pygame.display.set_mode()#创建和屏幕一样大的

    pygame.display.set_caption("Alien Invasion")

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

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

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

    # 创建一个用于存储子弹的编组
    bullets = Group()
    # 创建一个用于存储外星人的编组
    aliens = Group()

    # 创建一个外星人
    alien = Alien(ai_settings, screen)
    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 #3
0
def run_game():
    # 初始化pygame、设置和屏幕对象
    pygame.init()
    ai_settings = Settings()
    screen = pygame.display.set_mode(
        (ai_settings.screen_width,
         ai_settings.screen_height))  # 设置窗口大小,1200*800
    pygame.display.set_caption("Alien Invasion")

    # 创建Play按钮
    play_button = Button(ai_settings, screen, "Play")
    # 创建一个用于存储游戏统计信息的实例,并创建记分牌
    stats = GameStats(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, stats, sb, screen, ship, aliens,
                             bullets)
        gf.update_screen(ai_settings, screen, stats, sb, ship, aliens, bullets,
                         play_button)  # 刷新屏幕
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 = GameStats(ai_settings)
	#创建一艘飞船
	ship = Ship(ai_settings, screen)
	bullets = Group()
	aliens = Group()
	#创建一群外星人
	gf.creat_fleet(ai_settings, screen, ship, aliens)
	#开始游戏主循环
	while True:
		gf.check_events(ai_settings, screen, stats, play_button, ship, aliens, bullets)
		if stats.game_active:
			ship.update()
			gf.update_bulletts(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 run_game():
    pygame.init()  #initialsize for game
    theSettings = Settings()
    screen = pygame.display.set_mode(
        (theSettings.screen_width, theSettings.screen_height))
    pygame.display.set_caption(
        "Rubix has own super power nibba")  # game caption
    play_button = Button(theSettings, screen, "Play")
    stats = GameStats(theSettings)
    sb = Scoreboard(theSettings, screen, stats)
    rubix = ImageIcon(screen, theSettings)
    alien = Alien(theSettings, screen)
    bullets = Group()
    aliens = Group()
    gf.create_fleet(theSettings, screen, rubix, aliens)

    while True:
        gf.check_events(theSettings, screen, stats, sb, play_button, rubix,
                        aliens, bullets)

        if stats.game_active:
            rubix.update()
            bullets.update()
            gf.update_bullets(theSettings, screen, stats, sb, rubix, aliens,
                              bullets)
            gf.update_aliens(theSettings, stats, screen, rubix, aliens,
                             bullets)
            gf.update_screen(
                theSettings,
                screen,
                stats,
                sb,
                rubix,
                aliens,
                bullets,
            )
Example #6
0
def run_game():
    ''' initialize game and create a screen'''
    pygame.init()
    # create a screen whose size is determined in settings.
    ai_settings = Settings()
    screen = pygame.display.set_mode(
        (ai_settings.screen_width, ai_settings.screen_height))
    pygame.display.set_caption("Catch Ball")

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

    # create a group of balls
    balls = Group()
    gf.create_ball(balls, screen, ai_settings)
    # create one basket
    basket = Basket(screen, ai_settings)

    while True:
        gf.check_events(basket)
        if stats.game_active:
            basket.update()
            gf.update_balls(balls, basket, screen, ai_settings, stats)
        gf.update_screen(screen, basket, ai_settings, balls)
Example #7
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("外星人入侵")

    #创建一艘飞船
    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)

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

    #开始游戏主循环
    while True:
        gf.check_events(ai_settings, screen, stats, sb, play_button, ship,
                        aliens, bullets)
        if stats.game_active:
            ship.update()
            bullets.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))
    pygame.display.set_caption("Alien Invasion")

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

    #创建一个用于存储游戏统计信息的实例,创建记分牌
    stats = GameStats(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 == True:
            ship.update()
            gf.update_bullets(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)
Example #9
0
def run_game():
    # initiate the game and create 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')
    # create a "Play" button
    play_button = Button(ai_settings, screen, 'Play')
    # create an instance to store statistics information of the game and
    # create score board
    stats = GameStats(ai_settings)
    sb = ScoreBoard(ai_settings, screen, stats)

    # create a ship
    ship = Ship(ai_settings, screen)
    # create a group to store the bullets
    bullets = Group()
    # create a group to store the aliens
    aliens = Group()
    # create aliens
    gf.create_fleet(ai_settings, screen, ship, aliens)
    while True:

        # monitor keyboard and mouse event
        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, stats, screen, sb, ship, aliens,
                             bullets)

        gf.update_screen(ai_settings, screen, stats, sb, ship, aliens, bullets,
                         play_button)
Example #10
0
def run_game():
    '''
    Initialize pygame ,
    create a screen object
    (window screen size & window caption) & settings
    '''
    pygame.init()
    dc_settings = Settings()  #Object of Settings() class
    screen = pygame.display.set_mode(
        (dc_settings.screen_width, dc_settings.screen_height
         ))  #set screen size by passing in Settings width & height attributes
    pygame.display.set_caption("Dog Catch")

    dog = Dog(dc_settings, screen)
    background = Background()
    ballx = Group()
    gf.create_ballx(dc_settings, screen, ballx)

    #Gmme main loop
    while True:
        gf.check_events(dc_settings, screen, dog)
        dog.update()
        gf.update_balls(screen, dc_settings, ballx, dog)
        gf.update_screen(dc_settings, background, screen, dog, ballx)
Example #11
0
def run_game():
    # init a screen obj
    pygame.init()
    ai_settings = Settings()
    screen = pygame.display.set_mode(
        (ai_settings.screen_width, ai_settings.screen_height))
    pygame.display.set_caption("Alien Invasion")

    #create a ship
    ship = Ship(ai_settings, screen)
    bullets = Group()

    #alien
    aliens = Group()
    gf.create_fleet(ai_settings, screen, ship, aliens)

    #stat
    stats = GameStats(ai_settings)

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

    #score
    sb = ScoreBoard(ai_settings, screen, stats)

    while True:
        gf.check_events(ai_settings, screen, ship, aliens, bullets, stats,
                        play_button)

        if stats.game_active:
            ship.update()
            gf.update_bullets(ai_settings, screen, ship, aliens, bullets, sb,
                              stats)
            gf.update_aliens(ai_settings, stats, screen, ship, aliens, bullets)
        gf.update_screen(ai_settings, screen, ship, aliens, bullets, sb, stats,
                         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 = GameStats(ai_settings)

    sb = Scoreboard(ai_settings, screen, stats)

    ship = Ship(ai_settings, screen)
    #alien = Alien(ai_settings, screen)
    bullets = Group()
    aliens = Group()
    gf.create_fleet(ai_settings, screen, ship, aliens)
    while True:
        # for event in pygame.event.get():
        #     if eqvent.type == pygame.QUIT:
        #         sys.exit()
        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)

        # screen.fill(ai_settings.bg_color)
        # ship.blitme()
        # pygame.display.flip()
        gf.update_screen(ai_settings, screen, stats, sb, ship, aliens, bullets,
                         play_button)
Example #13
0
def run_game():
    #初始化游戏并创建一个屏幕
    pygame.init()
    # screen = pygame.display.set_mode((1200,800))
    ai_settings = Settings()
    screen = pygame.display.set_mode((ai_settings.screen_width,ai_settings.screen_height))
    pygame.display.set_caption("Alien Invasion")

    #设置屏幕背景色
    # bg_color = (230,230,230)

    #绘制飞船
    ship = Ship(ai_settings,screen)

    #存储子弹的编组
    bullets = Group()

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

    #存储统计信息
    stats = GameStats(ai_settings)
    sb = Scoreboard(ai_settings,screen,stats)
    #创建按钮
    play_button = Button(ai_settings,screen,"start")

    #开始游戏主循环
    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,stats,sb,ship,aliens,bullets)
            gf.update_alien(ai_settings,stats,screen,ship,aliens,bullets)
        gf.update_screen(ai_settings,screen,stats,sb,ship,aliens,bullets,play_button)
Example #14
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')
    # 创建飞船
    ship = Ship(ai_settings, screen)
    # 创建一个用于存储外星人的编组
    aliens = Group()
    # 创建外星人群
    gf.create_fleet(ai_settings, screen, aliens)
    # 创建一个用于存储子弹的编组
    bullets = Group()

    # 开始游戏的主循环
    while True:
        # 监视键盘和鼠标事件
        gf.check_events(ai_settings, screen, ship, bullets)
        ship.update()
        gf.update_bullet(bullets)
        # 重绘屏幕
        gf.update_screen(ai_settings, screen, ship, bullets,aliens)
Example #15
0
def run_game():
    '''
    Initialize pygame ,
    create a screen object
    (window screen size & window caption) & settings
    '''
    pygame.init()
    ai_settings = Settings()  #Object of Settings() class
    screen = pygame.display.set_mode(
        (ai_settings.screen_width, ai_settings.screen_height
         ))  #set screen size by passing in Settings width & height attributes
    pygame.display.set_caption("Stars Drop")

    #Make a ship, a group of bullets & a group of stars
    stars = Group()

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

    # Start the main loop for the game.
    while True:
        gf.check_events(ai_settings, screen)
        # gf.update_stars(ai_settings, stars)
        gf.update_screen(ai_settings, screen, stars)
def run_game():
    pygame.init()
    settings = Settings()
    screen = pygame.display.set_mode(settings.dims())
    pygame.display.set_caption('Alien Invasion')

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

    # Create an instance to store game statistics and create a scoreboard
    stats = GameStats(settings)
    sb = Scoreboard(settings, screen, stats)
    ship = Ship(screen, settings)

    bullets = Group()
    aliens = Group()

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

    while True:
        gf.check_events(settings, screen, stats, sb, play_button, ship, aliens,
                        bullets)

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

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

        screen.fill(settings.bg_color)
        ship.blitme()

    sys.exit()
Example #17
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")
    # 创建一艘飞船
    ship = Ship(ai_settings, screen)
    # 创建一个用于丰储子弹的编组Group()
    bullets = Group()
    # 开始游戏的主循环
    while True:
        # 监听鼠标键盘事件
        gf.check_events(ai_settings, screen, ship, bullets)
        ship.update()
        bullets.update()
        # 删除已消失的子弹
        for bullet in bullets.copy():
            if bullet.rect.bottom <= 0:
                bullets.remove(bullet)
        print(len(bullets))
        # 每次循环都重绘屏幕
        gf.update_screen(ai_settings, screen, ship, bullets)
Example #18
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")
    #bg_collor = (230,230,230)

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

    # #创建一个外星人

    # alien = Alien(ai_settings, screen)
    gf.create_fleet(ai_settings, screen, ship, aliens)

    while True:
        gf.check_events(ai_settings, screen, ship, bullets)
        ship.update()

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

        self.bullet_width = 300

        # screen.fill(ai_settings.bg_color)
        # ship.blitme()
        # 		#让最近的屏幕可见 #
        # pygame.display.flip()

        gf.update_screen(ai_settings, screen, ship, aliens, bullets)
Example #19
0
    def run(self):
        """Initialize the game and create a screen object
        """
        pygame.init()
        pygame.display.set_caption(self.setting.WindowTitle)
        screen = pygame.display.set_mode(
            (self.setting.WindowWidth, self.setting.WindowHeight))

        # create ship, bullets group and aliens group
        ship = Ship(self.setting, screen)
        bullets = Group()
        aliens = Group()

        # create alien fleet
        gf.create_fleet(self.setting, screen, ship, aliens)

        while True:
            gf.check_events(self.setting, screen, ship, bullets)
            ship.update()
            gf.update_bullets(self.setting, screen, ship, aliens, bullets)
            gf.update_aliens(self.setting, aliens)
            gf.update_screen(self.setting.WindowColor, screen, ship, aliens,
                             bullets)
            pygame.display.flip()
Example #20
0
def run_game(x, y):
    pygame.init()
    settings = Settings()
    statue = Statue()
    screen = pygame.display.set_mode(
        (settings.screen_width, settings.screen_height))
    map = Map(x, y, settings, screen)
    fog_map = Fog_map(x, y, settings, screen)
    gamer1 = Gamer(settings, x, y, screen)
    gamer2 = Gamer(settings, x, y, screen)
    monster1 = Monster(settings, x, y, screen, map)
    monster2 = Monster(settings, x, y, screen, map)
    gamer1.monsters = [monster1, monster2]
    msg = Msg(screen, '红色:起点  蓝色:终点或正确路径  黄色:玩家', 22, 300, 75)
    msg_title = Msg(screen, '迷宫游戏', 34, 300, 100)
    button_map = Button(screen, 32, '刷新地图', 137.5, 25, 275, 50)
    button_solve = Button(screen, 32, '自动寻路', 412.5, 25, 275, 50)
    button_return = Button(screen, 22, '返回', 575, 25, 50, 50)
    button_normal = Button(screen, 32, '普通模式', 300, 200, 300, 75)
    button_fog = Button(screen, 32, '迷雾模式 ', 300, 300, 300, 75)
    button_pair = Button(screen, 32, '怪兽模式 ', 300, 400, 300, 75)
    button_pair_fog = Button(screen, 32, '迷雾怪兽模式 ', 300, 500, 300, 75)
    button_solve.draw_button()
    while True:
        if statue.game_statue == 0:
            gf.check_event_menu(statue, button_normal, button_fog, button_pair,
                                button_pair_fog)
            gf.show_menu(screen, settings, button_normal, button_fog,
                         button_pair, msg_title, button_pair_fog)
        elif statue.game_statue == 1:
            if map.gen == 0:
                gf.gen_map(map, gamer1)
                gf.update_screen(map, gamer1, screen, settings, button_map,
                                 button_solve, button_return, msg)
            if statue.solve_statue == True:
                gf.check_events(map, gamer1, button_map, button_solve,
                                button_return, statue)
                gf.solve(map, screen, settings, statue, button_return, gamer1)
                gf.update_screen(map, gamer1, screen, settings, button_map,
                                 button_solve, button_return, msg)
            else:
                gf.check_events(map, gamer1, button_map, button_solve,
                                button_return, statue)
                gf.update_screen(map, gamer1, screen, settings, button_map,
                                 button_solve, button_return, msg)
        elif statue.game_statue == 2:
            if fog_map.gen == 0:
                gf.gen_map(fog_map, gamer1)
                gf.update_screen(fog_map, gamer1, screen, settings, button_map,
                                 button_solve, button_return, msg)
            if statue.solve_statue == True:
                gf.check_events(fog_map, gamer1, button_map, button_solve,
                                button_return, statue)
                gf.solve(fog_map, screen, settings, statue, button_return,
                         gamer1)
                gf.update_screen(fog_map, gamer1, screen, settings, button_map,
                                 button_solve, button_return, msg)
            else:
                gf.check_events(fog_map, gamer1, button_map, button_solve,
                                button_return, statue)
                gf.update_screen(fog_map, gamer1, screen, settings, button_map,
                                 button_solve, button_return, msg)
        elif statue.game_statue == 3:
            if map.gen == 0:
                gf.gen_map(map, gamer1)
                gf.update_screen_monster(map, gamer1, screen, settings,
                                         button_map, button_solve,
                                         button_return, msg)
                for monster in gamer1.monsters:
                    monster.init_monster()
            if statue.solve_statue == True:
                gf.check_events(map, gamer1, button_map, button_solve,
                                button_return, statue)
                gf.solve(map, screen, settings, statue, button_return, gamer1)
                gf.update_screen_monster(
                    map,
                    gamer1,
                    screen,
                    settings,
                    button_map,
                    button_solve,
                    button_return,
                    msg,
                )
            else:
                gf.check_events(map, gamer1, button_map, button_solve,
                                button_return, statue)
                gf.update_screen_monster(
                    map,
                    gamer1,
                    screen,
                    settings,
                    button_map,
                    button_solve,
                    button_return,
                    msg,
                )
Example #21
0
def run_game():
    # 初始化游戏并创建一个屏幕对象
    #pygame.font.init()
    #cur_font = pygame.font.SysFont("semiHei",10)
    pg.init()  # 初始化背景设置
    ai_settings = Settings()
    screen = pg.display.set_mode(
        (ai_settings.screen_width, ai_settings.screen_height))
    screen.fill(ai_settings.bg_color)  # 事先填充所需颜色
    # 创建一个名为screen的显示窗口,实参(1200,800)是一个元组,指的是游戏窗口尺寸

    pg.display.set_caption('外星人入侵!')
    # 对象screen是一个surface,在这个游戏中,每个元素(外星人,飞船)都是个surface
    # 我们激活游戏的动画循环后,每经过一次循环都将自动重绘这个surface

    # 创建一个play按钮,一个继续按钮,一个重新开始按钮
    play_button = Button(
        ai_settings,
        screen,
        "开始游戏",
        [56, 180, 139],  # 翠绿
        ai_settings.screen_width / 2,
        ai_settings.screen_height / 2)
    resume_button = Button(
        ai_settings,
        screen,
        "继续",
        [42, 146, 165],  # 墨绿
        ai_settings.screen_width / 2,
        ai_settings.screen_height / 2 + 50)
    restart_button = Button(
        ai_settings,
        screen,
        "重新开始",
        [216, 95, 77],  # 红
        ai_settings.screen_width / 2,
        ai_settings.screen_height / 2 - 50)

    # 创建一个用于存储游戏统计信息的实例和一个计分板实例
    stats = GameStats(ai_settings)
    sb = Scoreboard(ai_settings, screen, stats)
    # 创建一艘飞船,个用于存储子弹和外星人的编组Group
    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, sb, screen, ship, bullets, aliens,
                        play_button, resume_button, restart_button)
        if stats.game_active:
            # 更新飞船、子弹和外星人的位置
            ship.update()
            gf.update_bulltes(ai_settings, sb, screen, ship, aliens, bullets)
            gf.update_aliens(ai_settings, stats, sb, screen, ship, aliens,
                             bullets)
            # 更新屏幕
        gf.update_screen(ai_settings, stats, sb, screen, ship, aliens, bullets,
                         play_button, resume_button, restart_button)
platforms = []
for i in range(5):
    plt = StaticEntity(screen, setting, 'images/block.png')
    plt.start_position([
        randint(0, setting.width - plt.rect.width),
        setting.height / 6 * i + plt.rect.height
    ])

    platforms.append(plt)

plt = StaticEntity(screen, setting, 'images/block.png')
plt.start_position()
platforms.append(plt)

while True:
    gf.check_events(doodle)
    doodle.move()

    doodle.move_y(platforms)
    doodle.animation(platforms)

    screen.blit(setting.bg_image, (0, 0))
    for plt in platforms:
        plt.blit()

    doodle.shoot()
    doodle.blit()

    pygame.display.flip()
    pygame.time.delay(24)
Example #23
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("PacMan Portal")
    spritesheet1 = SpriteSheet('PacManNGhost.png', screen)
    spritesheet2 = SpriteSheet('MoreStuff.png', screen)
    spritesheet3 = SpriteSheet('Ghost.png', screen)
    title = Title(ai_settings, screen)
    ghostpoints = GhostPoints(screen, spritesheet1, spritesheet3)

    play_button = Button(ai_settings, screen, "Play",
                         ai_settings.screen_width / 2,
                         ai_settings.screen_height * 2 / 3)
    score_button = Button(ai_settings, screen, "High Scores",
                          ai_settings.screen_width / 2,
                          ai_settings.screen_height * 2 / 3 + 100)

    score = Score(ai_settings, screen, spritesheet1)

    pacman = Pacman(ai_settings, screen, spritesheet1)
    red_ghost = RedGhost(ai_settings, screen, spritesheet1)
    green_ghost = GreenGhost(ai_settings, screen, spritesheet3)
    orange_ghost = OrangeGhost(ai_settings, screen, spritesheet3)
    pink_ghost = PinkGhost(ai_settings, screen, spritesheet3)

    red_portal = Portal(ai_settings, screen, spritesheet2)
    blue_portal = Portal(ai_settings, screen, spritesheet2)

    left_hitbox = LeftHitbox(ai_settings, pacman)
    right_hitbox = RightHitbox(ai_settings, pacman)
    up_hitbox = UpHitbox(ai_settings, pacman)
    down_hitbox = DownHitbox(ai_settings, pacman)

    blocks = Group()
    g_blocks = Group()
    dots = Group()
    power_dots = Group()
    bullets = Group()
    side_portals = SidePortals(ai_settings, screen)
    fruit = Fruit(ai_settings, screen, spritesheet1)
    time = 1

    maze = Maze(ai_settings, screen, spritesheet2, blocks, g_blocks, dots,
                power_dots)

    while True:

        timer = pygame.time.Clock()
        timer.tick(60)
        time += 1
        if time == 61:
            time = 1
        gf.update_screen(ai_settings, screen, time, score, title, play_button,
                         score_button, pacman, blocks, g_blocks, dots,
                         power_dots, bullets, red_portal, blue_portal, fruit,
                         side_portals, red_ghost, ghostpoints, green_ghost,
                         orange_ghost, pink_ghost)

        gf.check_events(ai_settings, screen, spritesheet2, play_button,
                        score_button, pacman, bullets)
        if ai_settings.game_on:
            pygame.mouse.set_visible(False)
            maze.reset_maze(spritesheet2, dots, power_dots)
            pacman.reset_pacman()
            red_ghost.reset_ghost()
            green_ghost.reset_ghost()
            orange_ghost.reset_ghost()
            pink_ghost.reset_ghost()
            fruit.reset_fruit()
            fruit.fruit_count = 0
            bullets.empty()
            red_portal.reset_portal(pacman)
            blue_portal.reset_portal(pacman)
            score.reset_score()
            score.prep_lives()
            score.prep_score()
            score.prep_high_score()
            score.prep_level()
            gf.update_screen(ai_settings, screen, time, score, title,
                             play_button, score_button, pacman, blocks,
                             g_blocks, dots, power_dots, bullets, red_portal,
                             blue_portal, fruit, side_portals, red_ghost,
                             ghostpoints, green_ghost, orange_ghost,
                             pink_ghost)
            maze.pre_game_draw()

            sleep(5)
            while ai_settings.game_on:
                timer.tick(60)
                time += 1
                if time == 61:
                    time = 1
                pacman.cooldown()
                red_ghost.cooldown()
                green_ghost.cooldown()
                orange_ghost.cooldown()
                pink_ghost.cooldown()
                gf.check_events(ai_settings, screen, spritesheet2, play_button,
                                score_button, pacman, bullets)
                if pacman.active:
                    gf.check_collisions(ai_settings, score, pacman, blocks,
                                        g_blocks, dots, power_dots,
                                        left_hitbox, right_hitbox, up_hitbox,
                                        down_hitbox, bullets, red_portal,
                                        blue_portal, fruit, side_portals,
                                        red_ghost, green_ghost, orange_ghost,
                                        pink_ghost)
                score.extra_life()

                if not pacman.active and score.lives > 0:
                    score.lives -= 1
                    score.prep_lives()
                    pacman.reset_pacman()
                    red_ghost.reset_ghost()
                    green_ghost.reset_ghost()
                    orange_ghost.reset_ghost()
                    pink_ghost.reset_ghost()
                    fruit.reset_fruit()
                    fruit.fruit_count = 0
                    bullets.empty()
                    red_portal.reset_portal(pacman)
                    blue_portal.reset_portal(pacman)
                    sleep(3)
                    gf.update_screen(ai_settings, screen, time, score, title,
                                     play_button, score_button, pacman, blocks,
                                     g_blocks, dots, power_dots, bullets,
                                     red_portal, blue_portal, fruit,
                                     side_portals, red_ghost, ghostpoints,
                                     green_ghost, orange_ghost, pink_ghost)
                    maze.pre_game_draw()
                    sleep(5)
                elif not pacman.active and score.lives == 0:
                    sleep(3)
                    ai_settings.game_on = False
                    pygame.mouse.set_visible(True)
                    for x in range(0, len(score.high_score_list)):
                        if score.points > score.high_score_list[x]:
                            score.high_score_list.insert(x, score.points)
                            score.high_score_list.pop()
                            break
                    high_score_file = open("High_Scores.txt", "w")
                    for x in range(0, len(score.high_score_list) - 1):
                        high_score_file.write(
                            str(score.high_score_list[x]) + "\n")
                    high_score_file.write(str(score.high_score_list[8]))
                    high_score_file.close()
                    print(list(map(str, score.high_score_list)))

                pacman.update_pacman()
                red_ghost.update_ghost(pacman)
                green_ghost.update_ghost(pacman)
                orange_ghost.update_ghost(pacman)
                pink_ghost.update_ghost(pacman)
                for bullet in bullets:
                    bullet.update_bullet()
                left_hitbox.update_hitbox(pacman)
                right_hitbox.update_hitbox(pacman)
                up_hitbox.update_hitbox(pacman)
                down_hitbox.update_hitbox(pacman)
                red_portal.expire_portal(pacman)
                blue_portal.expire_portal(pacman)
                fruit.update_fruit()

                gf.update_screen(ai_settings, screen, time, score, title,
                                 play_button, score_button, pacman, blocks,
                                 g_blocks, dots, power_dots, bullets,
                                 red_portal, blue_portal, fruit, side_portals,
                                 red_ghost, ghostpoints, green_ghost,
                                 orange_ghost, pink_ghost)

                if len(dots) == 0 and len(power_dots) == 0:
                    gf.end_level(ai_settings, screen, time, spritesheet2,
                                 score, title, play_button, score_button,
                                 pacman, maze, blocks, g_blocks, dots,
                                 power_dots, bullets, red_portal, blue_portal,
                                 fruit, side_portals, red_ghost, ghostpoints,
                                 green_ghost, orange_ghost, pink_ghost)
        elif ai_settings.score_on:
            while ai_settings.score_on:
                gf.check_events(ai_settings, screen, spritesheet2, play_button,
                                score_button, pacman, bullets)
                gf.update_screen(ai_settings, screen, time, score, title,
                                 play_button, score_button, pacman, blocks,
                                 g_blocks, dots, power_dots, bullets,
                                 red_portal, blue_portal, fruit, side_portals,
                                 red_ghost, ghostpoints, green_ghost,
                                 orange_ghost, pink_ghost)
Example #24
0
    sb = Scoreboard(ai_settings, screen, stats)
    # Creating Ship
    ship = Ship(ai_settings, screen)
    # Creating bullets
    bullets = Group()
    aliens = Group()

    # Create play button
    play_button = Button(ai_settings, screen, "Play")

    # Create alien's fleet
    gf.create_fleet(ai_settings, screen, ship, aliens)

    # Start the main loop for the game
    while True:
        # Checking keyboard and mouse events.
        gf.check_events(ai_settings, screen, stats, sb, play_button, ship,
                        aliens, bullets)
        if stats.game_active:
            ship.update()
            bullets.update()
            aliens.update()
            # Delete bullets behind screen
            gf.update_bullets(ai_settings, screen, stats, sb, ship, aliens,
                              bullets)
            gf.update_aliens(ai_settings, stats, screen, sb, aliens, ship,
                             bullets)
        # Update screen
        gf.update_screen(ai_settings, stats, sb, screen, ship, bullets, aliens,
                         play_button)
Example #25
0
def Main(enter, exit):

    # Run main // (enter, exit) are not used to track exit conditions
    pygame.init()
    pygame.display.set_caption("PSI")
    g_settings = Settings(exit)
    screen   = pygame.display.set_mode((g_settings.screen_width, \
             g_settings.screen_height))
    font = pygame.font.SysFont(None, 48)
    g_settings.load_background(screen)

    stats = Stats(g_settings)
    ship = Ship(screen, g_settings, stats)
    reticle = Reticle(g_settings, screen)
    textbox = TextInput()
    aliens = Alien(screen, g_settings)
    scores = Score(g_settings, screen, stats, ship)
    powerups = Group()
    twits = Group()

    # wpns
    bullets = Group()
    lazers = Group()
    bombs = Group()

    # Our weapons
    projectiles = [bombs, bullets, lazers]
    # btns
    attack_btn = Button(g_settings, screen, [527, 400, 159, 50], 2)
    login_btn = Button(g_settings, screen, [130, 258, 220, 50], 2)
    about_btn = Button(g_settings, screen, [820, 260, 245, 50], 2)
    pass_btn = Button(g_settings, screen, [550, 342, 100, 37], 2)
    passed_btn = Button(g_settings, screen, [540, 342, 122, 37], 2)

    # Our buttons
    buttons = [login_btn, about_btn, attack_btn, pass_btn, passed_btn]
    clock = pygame.time.Clock()
    FPS = 22
    """ 
		KEYDOWNS occurring outside of gameplay compute within pygame_textinput.py 
		When game is active, textbox.update() ceases, and gf.check_events takes over.
	"""

    while True:  # Main Game Loop loops

        clock.tick(FPS)

        if gf.update_screen(g_settings, screen, font, ship, textbox, aliens, reticle, \
                  twits, powerups, projectiles, stats, \
                    scores, buttons) == 'TX_QUIT':
            # If we receive the quit flag.
            return True

        if stats.game_active == True:
            #enter.send('hello')
            # As per the DocString
            if gf.check_events(g_settings, screen, ship, aliens, stats, \
                   scores, projectiles) == 'CE_QUIT':
                # if we receive the quit flag
                return True
            if stats._current_screen == 3:

                gf.update_bullets(g_settings, screen, stats, ship, \
                     scores, projectiles, powerups, \
                       enter, exit, twits=twits)

                gf.update_twits(g_settings, screen, stats, ship, powerups,\
                        twits, scores, projectiles)
Example #26
0
def screen_2():
    global running1, running2, running, cursor, text, bullet, centipede, no_control_player, music

    music = pygame.mixer.music.load('./data/music/background_music.mp3')
    pygame.mixer.music.play(-1, 0.0)
    clock = pygame.time.Clock()
    while running2:
        gf.check_events(settings, screen, shooter, bullets)

        injured_segments_list = []
        collisions = pygame.sprite.groupcollide(bullets, centipede, True,
                                                False)
        for bullet in collisions:
            injured_segments_list.append(collisions[bullet])
        new_mushroom = centipede.delete_segment([
            segment for segments in injured_segments_list
            for segment in segments
        ], mushrooms)

        if new_mushroom != None:
            mushrooms.add(new_mushroom)

        collisions = pygame.sprite.groupcollide(centipede, mushrooms, False,
                                                False)
        centipede.collision(collisions)

        collisions = pygame.sprite.groupcollide(bullets, mushrooms, True, True)
        if collisions:
            # количество создаваемых частиц
            particle_count = 3
            # возможные скорости
            numbers = range(-5, 5)
            for _ in range(particle_count):
                for bullet in collisions:
                    for mushroom in collisions[bullet]:
                        new_circle = Particle(
                            (mushroom.rect.x, mushroom.rect.y),
                            random.choice(numbers), random.choice(numbers),
                            all_sprites, screen)

        shooter.update()
        gf.update_screen(settings, screen, bullets)
        gf.update_bullets(bullets)

        status1 = pygame.sprite.spritecollide(shooter, mushrooms, False,
                                              pygame.sprite.collide_mask)
        status2 = pygame.sprite.spritecollide(shooter, centipede, False,
                                              pygame.sprite.collide_mask)
        if status1 or status2:
            text = 'LOSE'
            running2 = False

        for sprites in list(itertools.chain(no_control_player)):
            if type(sprites) == list:
                for sprite in sprites:
                    sprite.update()
            else:
                sprites.update()

        for sprite in all_sprites:
            sprite.update()
            screen.blit(sprite.image, sprite.rect)

        all_sprites.add(itertools.chain(no_control_player))
        all_sprites.add(itertools.chain(mushrooms))

        if len(centipede) == 0:
            centipede = Centipede([speed, 0], [300, 0], screen, 7)
            all_sprites.add(centipede)
            no_control_player = [centipede, mushrooms]
            gf.make_mushrooms(settings, mushrooms, 3)
            continue

        clock.tick(100)
        pygame.display.flip()
Example #27
0
def run_game():
    ai_settings = Settings()
    screen = pygame.display.set_mode((ai_settings.screen_width, ai_settings.screen_height))  # 设置屏幕长宽
    monster_image = IMAGESDICT['monster_im']
    monster_rect = monster_image.get_rect()  # 获取monster的矩形
    monster_rect.bottom = 500  # 设置monster初始位置
    monster_rect.right = 50  # 设置monster初始位置
    speed = [1, 1]  # monster的速度:水平速度为1,竖直速度为1
    # 用不同的名词替代class定义的类
    man = Man(screen)
    man_2 = Man_2(screen)
    initial_ordinary = Initial_Ordinary(ai_settings, screen, man)
    ordinary_1 = Ordinary_1(screen)
    ordinary_2 = Ordinary_2(screen)
    ordinary_3 = Ordinary_3(screen)
    macadam_2 = Macadam_2s(screen)
    conveyer = Conveyers(screen)
    stick = Stick(screen)
    # 两个玩家的初始成绩为0
    score_1 = 0
    score_2 = 0

    pygame.mixer.music.play(-1, 0.0)

    while True:
        monster_rect = monster_rect.move(speed)  # 让monster的位置根据speed移动
        if (monster_rect.left < 0) or (monster_rect.right > 400):  # 如果monster在水平位置上超出屏幕范围,那么monster的运动方向相反
            speed[0] = -speed[0]
        if (monster_rect.bottom > 600) or (monster_rect.top < 0):  # 如果monster在竖直方向上超出了屏幕范围,那么monster的运动方向相反
            speed[1] = -speed[1]
        screen.blit(monster_image, monster_rect)  # 让屏幕更新monster的状态

        if man.rect.y < 600 or man_2.rect.y < 600:  # 如果玩家1和玩家2还没有触碰到屏幕顶端,则游戏继续
            if man.rect.y < 600 and man_2.rect.y < 600:
                score_1 += 0.01 * PARAMETER['coefficient']
                score_2 += 0.01 * PARAMETER['coefficient']

            elif man.rect.y < 600 and man_2.rect.y > 600:  # 如果玩家2触及屏幕顶端,则玩家2死亡,玩家1继续
                score_1 += 0.01 * PARAMETER['coefficient']
                score_2 += 0
            elif man.rect.y > 600 and man_2.rect.y < 600:  # 如果玩家1触碰到屏幕顶端,则玩家1死亡,玩家2继续
                score_1 += 0
                score_2 += 0.01 * PARAMETER['coefficient']

            gf.check_events(ai_settings, screen, man, man_2, score_1, score_2)

            man.update_wid()  # 更新玩家1的左右位置
            man_2.update_wid()  # 更新玩家2的左右位置
            man.update_hei(initial_ordinary)  # 更新玩家1在初始障碍上运动的竖直位置
            man_2.update_hei(initial_ordinary)  # 更新玩家2在初始障碍上运动的竖直位置
            initial_ordinary.update_hei()  # 更新初始障碍的位置
            ordinary_1.update_hei(screen)  # 更新第一个普通障碍的位置
            ordinary_2.update_hei(screen)  # 更新第二个普通障碍的位置
            ordinary_3.update_hei(screen)  # 更新第三个普通障碍的位置
            macadam_2.update_hei(screen)  # 更新碎石障碍的位置
            conveyer.update_hei(screen)  # 更新传送带的位置
            man_2.update_hei_1(initial_ordinary, ordinary_1, ordinary_2, ordinary_3, macadam_2, conveyer,
                               monster_rect)  # 更新玩家2与普通障碍、碎石、传送带上运动的竖直位置
            man_2.update_stick(stick)  # 更新玩家2与刺的相对位置
            man.update_hei_1(initial_ordinary, ordinary_1, ordinary_2, ordinary_3, macadam_2, conveyer,
                             monster_rect)  # 更新玩家1与普通障碍、碎石、传送带上运动的竖直位置
            man.update_stick(stick)  # 更新玩家1与刺的相对位置
            macadam_2.check_collide(screen, man, man_2)  # 检查玩家与碎石是否碰撞

            gf.update_screen(ai_settings, screen, man, man_2, initial_ordinary, ordinary_1, ordinary_2, ordinary_3,
                             macadam_2, conveyer, stick)

        else:  # 如果玩家1和玩家2都死亡,则出现GAME OVER字样
            score_1 += 0
            score_2 += 0
            gf.check_events(ai_settings, screen, man, man_2, score_1, score_2)
            gf.drawText_1('GAME OVER', font, screen, (ai_settings.screen_width / 3), (ai_settings.screen_height / 3))
            pygame.display.update()

            pygame.mixer.music.stop()
            gameOverSound.play()
            time.sleep(3)
            score_1 = int(score_1)
            score_2 = int(score_2)

            Scorewinwid = 500
            Scorewinhei = 150
            TEXTCOLOR = (255, 255, 255)
            BACKGROUNDCOLOR = (0, 0, 0)
            pygame.init()
            # 固定屏幕位置
            os.environ['SDL_VIDEO_WINDOW_POS'] = "%d,%d" % (
                (SCREENWIDTH - Scorewinwid) / 2, (SCREENHEIGHT - Scorewinhei) / 2)
            ScoreWindow = pygame.display.set_mode((Scorewinwid, Scorewinhei))
            pygame.display.set_caption('Score Save')
            BASICFONT = pygame.font.Font('Comici.ttf', 20)
            gf.drawText_1("Do you want to save this score?", BASICFONT, ScoreWindow, (Scorewinwid / 3),
                          (Scorewinhei / 3) - 10)
            gf.drawText_1("If yes, please press Y !", BASICFONT, ScoreWindow, (Scorewinwid / 3), (Scorewinhei / 3 + 15))
            gf.drawText_1("If no, please press N !", BASICFONT, ScoreWindow, (Scorewinwid / 3), (Scorewinhei / 3 + 40))
            pygame.display.flip()

            while True:
                for event in pygame.event.get():
                    if event.type == pygame.QUIT:
                        sys.exit()
                    elif event.type == pygame.KEYDOWN:
                        if event.key == pygame.K_n:
                            sys.exit()
                        elif event.key == pygame.K_y:
                            score_1 = int(score_1)
                            stu1 = ["a", score_1]
                            out_1 = open('Stu1_csv.csv', 'a', newline="")
                            csv_write = csv.writer(out_1, dialect='excel')
                            csv_write.writerow(stu1)
                            print("write over")
                            filename = 'Stu1_csv.csv'
                            with open(filename) as f:
                                reader = csv.reader(f)
                                header_row = next(reader)
                                print(header_row)
                                for index, column_header in enumerate(header_row):
                                    print(index, column_header)
                                scores_1 = [score_1]
                                for row in reader:
                                    new_score = int(row[1])
                                    scores_1.append(new_score)
                                scores_1.remove(score_1)
                                scores_1.append(score_1)
                                print(scores_1)

                            score_2 = int(score_2)
                            stu2 = ["b", score_2]
                            out_2 = open('Stu2_csv.csv', 'a', newline="")
                            csv_write = csv.writer(out_2, dialect='excel')
                            csv_write.writerow(stu2)
                            print("write over")
                            filename_2 = 'Stu2_csv.csv'
                            with open(filename_2) as f:
                                reader = csv.reader(f)
                                header_row = next(reader)
                                print(header_row)
                                for index, column_header in enumerate(header_row):
                                    print(index, column_header)
                                scores_2 = [score_2]
                                for row in reader:
                                    new_score_2 = int(row[1])
                                    scores_2.append(new_score_2)
                                scores_2.remove(score_2)
                                scores_2.append(score_2)
                                print(scores_2)

                            from matplotlib import pyplot as plt
                            fig = plt.figure(dpi=128, figsize=(3, 2))
                            plt.plot(scores_1, c='red', label="score 1")
                            plt.plot(scores_2, c='gray', label="score 1")
                            plt.title("Score", fontsize=18)
                            plt.xlabel = ('')
                            plt.ylabel = ('score')
                            plt.tick_params(axis='both', which='major', labelsize=16)
                            plt.legend(loc=9)
                            plt.savefig('scoreshow.png', bbox_inches='tight')
                            top_score_1 = max(scores_1)
                            top_score_2 = max(scores_2)
                            if top_score_1 > top_score_2:
                                winner = 'Player 1'
                            elif top_score_1 < top_score_2:
                                winner = 'Player 2'
                            else:
                                winner = 'Player 1 and Player 2'
                            WINDOWWIDTH = 800
                            WINDOWHEIGHT = 600
                            pygame.init()
                            # 固定屏幕位置
                            os.environ['SDL_VIDEO_WINDOW_POS'] = "%d,%d" % (
                                (SCREENWIDTH - WINDOWWIDTH) / 2, (SCREENHEIGHT - WINDOWHEIGHT) / 2)
                            windowSurface = pygame.display.set_mode((WINDOWWIDTH, WINDOWHEIGHT))
                            pygame.display.set_caption('Score Show')
                            DISPLAYSURF.fill(BGCOLOR)

                            BASICFONT_1 = pygame.font.Font('Comici.ttf', 38)
                            BASICFONT_2 = pygame.font.Font('Comici.ttf', 28)
                            gf.drawText_2(winner, BASICFONT_1, windowSurface, 330, 130)
                            gf.drawText_2("Player 1's current score is " + str(score_1), BASICFONT_2, windowSurface,
                                          225, 200)
                            gf.drawText_2("Player 2's current score is " + str(score_2), BASICFONT_2, windowSurface,
                                          225, 250)
                            Scoreimage = {'show': pygame.image.load('scoreshow.png'),
                                          'top': pygame.image.load('huizhang.jpg'),
                                          'title': pygame.image.load('winner.png')}
                            SHRect_1 = Scoreimage['show'].get_rect()
                            image_position = 300
                            SHRect_1.top = image_position
                            SHRect_1.centerx = HALF_WINWIDTH
                            image_position += SHRect_1.height
                            windowSurface.blit(Scoreimage['show'], SHRect_1)
                            SHRect_2 = Scoreimage['title'].get_rect()
                            image_position = 50
                            SHRect_2.top = image_position
                            SHRect_2.centerx = HALF_WINWIDTH
                            image_position += SHRect_2.height
                            windowSurface.blit(Scoreimage['title'], SHRect_2)
                            SHRect_3 = Scoreimage['top'].get_rect()
                            image_position = 46
                            SHRect_3.top = image_position
                            SHRect_3.centerx = 346
                            image_position += SHRect_3.height
                            windowSurface.blit(Scoreimage['top'], SHRect_3)
                            pygame.display.flip()
                            time.sleep(10)
                            return
            break

        gf.update_screen(ai_settings, screen, man, man_2, initial_ordinary, ordinary_1, ordinary_2, ordinary_3,
                         macadam_2, conveyer, stick)
Example #28
0
def run_game():

    # Инициируем pygame
    pygame.init()

    # Инициируем класс с настройками игры
    game_settings = Settings()

    # Инициируем клас игровой статистики
    stats = GameStats(game_settings)

    # Устанавливаем экран на всю ширину монитора
    screen = pygame.display.set_mode(
        (game_settings.screen_width, game_settings.screen_height))

    # Инициируем класс Корабль
    ship = Ship(game_settings, screen)

    # Инициируем выстрелы
    bullets = Group()

    # Инициируем чужих
    aliens = Group()
    game_function.create_fleet(game_settings, screen, ship, aliens)

    # Если в настройках стоит флаг full screen то ставим на полный экран
    if game_settings.full_screen_mode:
        pygame.display.set_mode((0, 0), pygame.FULLSCREEN)

    # Прописываем название окна
    pygame.display.set_caption("Aliens")

    # Создаем кнопку запуска игры
    play_button = Button(game_settings, screen, "Play")

    # Создаем экземпляр класса для вывода очков
    scoreboard = Scoreboard(game_settings, screen, stats)

    # Главный цикл игры
    while True:

        # Функция отслеживания событий в игре
        game_function.check_events(game_settings, screen, stats, play_button,
                                   ship, aliens, bullets)

        if stats.game_active:
            # создаем бэкграунд
            game_function.draw_background(game_settings, screen)

            # Отрисовываем Врагов
            aliens.update()

            # отрисовываем корабль
            ship.update()

            # Отрисовываем пули
            game_function.update_bullets(bullets, aliens, game_settings, stats,
                                         scoreboard, screen, ship)

            # перерисовываем врагов
            game_function.update_aliens(game_settings, stats, screen, aliens,
                                        ship, bullets)

        # Перерисовываем окно
        game_function.update_screen(game_settings, screen, stats, scoreboard,
                                    ship, bullets, aliens, play_button)
Example #29
0
def run_game():
    due = time.time()
    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=ai_settings, screen=screen, msg="Play")
    # 创建一个用于存储游戏统计信息的实例,并创建记分牌
    stats = GameStats(ai_settings=ai_settings)
    sb = Scoreboard(ai_settings=ai_settings, screen=screen, stats=stats)
    # 创建一艘飞船
    ship = Ship(ai_settings=ai_settings, screen=screen)
    # 创建一个用于存储子弹的编组
    bullets = Group()
    bullet_type = 0
    # 创建外星人群
    aliens = Group()

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

    while True:
        gf.update_screen(ai_settings=ai_settings,
                         screen=screen,
                         stats=stats,
                         scoreboard=sb,
                         ship=ship,
                         aliens=aliens,
                         bullets=bullets,
                         play_button=play_button)
        gf.check_events(ai_settings=ai_settings,
                        screen=screen,
                        stats=stats,
                        play_button=play_button,
                        scoreboard=sb,
                        ship=ship,
                        aliens=aliens,
                        bullets=bullets)
        if stats.game_active:
            ship.update()

            due = gf.fire_bullet(ai_settings=ai_settings,
                                 screen=screen,
                                 ship=ship,
                                 bullets=bullets,
                                 due=due,
                                 bullet_type=bullet_type)
            gf.update_bullets(ai_settings=ai_settings,
                              screen=screen,
                              stats=stats,
                              scoreboard=sb,
                              ship=ship,
                              aliens=aliens,
                              bullets=bullets)
            gf.update_aliens(ai_settings=ai_settings,
                             stats=stats,
                             screen=screen,
                             scoreboard=sb,
                             ship=ship,
                             aliens=aliens,
                             bullets=bullets)
Example #30
0
import game_function as gf
from settings import Settings
from character import Character
import  pygame
def run_game():
 pygame.init()

ai_settings = Settings()
screen = pygame.display.set_mode( (ai_settings.width, ai_settings.height))
pygame.display.set_caption("Blue Background")
character = Character(screen)
while True:
   gf.check_events()
   gf.update_screen(ai_settings, screen, character)


run_game()