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)
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) # 刷新屏幕
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, )
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)
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)
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)
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)
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)
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)
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)
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)
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()
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)
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)
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()
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, )
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)
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)
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)
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)
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()
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)
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)
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)
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()