def run_game(): """Main game loop""" # NOTE: Pre init to reduce audio lag and oddities pygame.mixer.pre_init(44100, -16, 2, 2048) pygame.mixer.init() pygame.init() blast_settings = Settings() screen = pygame.display.set_mode( (blast_settings.screen_width, blast_settings.screen_height)) pygame.display.set_caption("Blast!") play_button = Button(blast_settings, screen, "Play") stats = GameStats(blast_settings) sb = Scoreboard(blast_settings, screen, stats) ship = Ship(blast_settings, screen) bg = Background(screen) bullets = Group() enemies = Group() gf.create_fleet(blast_settings, screen, ship, enemies) menuMusic = pygame.mixer.Sound('../audio/menuMusic.ogg') menuMusic.play() while True: gf.check_events(blast_settings, screen, stats, sb, play_button, ship, enemies, bullets) gf.update_screen(blast_settings, screen, stats, sb, ship, enemies, bullets, play_button, bg) if stats.game_active: menuMusic.stop() ship.update() gf.update_bullets(blast_settings, screen, stats, sb, ship, enemies, bullets) gf.update_enemies(blast_settings, screen, stats, sb, ship, enemies, bullets)
def run_game(): pygame.init() ai_settings = Sett() screen = pygame.display.set_mode( (ai_settings.screen_width, ai_settings.screen_height)) screen.fill((255, 255, 255)) pygame.display.set_caption("Gate Control") stats = GameStats(ai_settings) play_button = Button(ai_settings, screen, "Play") ship = Ship(screen, ai_settings) sb = Scoreboard(ai_settings, screen, stats) bullets = Group() enemies = Group() game.create_fleet(ai_settings, screen, ship, enemies) running = True #Change for autimatical end of the loop while running: game.check_events(sb, ship, bullets, ai_settings, screen, stats, play_button, enemies) if stats.game_active: game.update_bullets_and_remove(enemies, bullets, screen, ship, ai_settings, stats, sb) #Removing old bullets game.update_enemies(ai_settings, enemies, ship, stats, screen, bullets, sb) game.update_screen(sb, ship, bullets, ai_settings, screen, stats, enemies, play_button)
def run_game(): # Initializes game and creates 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("Space Invaders") # Game statistic and scoreboard creation stats = GameStats(ai_settings) sb = Scoreboard(ai_settings, screen, stats) # Button creation play_button = Button(ai_settings, screen, "Play") # Ship creation ship = Ship(ai_settings, screen) # Make a group of lasers and enemies lasers = Group() enemies = Group() # Make enemies gf.create_fleet(ai_settings, screen, ship, enemies) # Main game loop while True: # Keyboard/Mouse event listener gf.check_events(ai_settings, screen, stats, sb, play_button, ship, enemies, lasers) if stats.game_active: ship.update() gf.update_lasers(ai_settings, screen, stats, sb, ship, lasers, enemies) gf.update_enemies(ai_settings, stats, screen, sb, ship, enemies, lasers) # Screen re-draw gf.update_screen(ai_settings, screen, stats, sb, ship, enemies, lasers, play_button)
def run_game(): # initialize 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") play_button = Button(ai_settings, screen, "Play") stats = GameStats(ai_settings) sb = Scoreboard(ai_settings, screen, stats) # 创建一艘飞船,一个用于存储子弹的编组,一个外星人群组 ship = Ship(ai_settings, screen) bullets = Group() enemies = Group() gf.create_fleet(ai_settings, screen, ship, enemies) # begin the mainly loop while True: gf.check_events(ai_settings, screen, stats, sb, play_button, ship, enemies, bullets) if stats.game_active: ship.update() gf.update_bullets(ai_settings, screen, stats, sb, ship, enemies, bullets) gf.update_enemies(ai_settings, stats, sb, screen, ship, enemies, bullets) gf.update_screen(ai_settings, stats, sb, screen, ship, enemies, bullets, play_button)
def run_game(): """ 游戏主程序 """ # 游戏初始化 pygame.init() game_settings = Settings() screen = pygame.display.set_mode( (game_settings.screen_width, game_settings.screen_height)) pygame.display.set_caption(game_settings.caption) # 创建Play按钮 play_button = Button(game_settings, screen, "Play") # 创建统计信息实例 stats = GameStats(game_settings) # 创建记分牌 score_board = Scoreboard(game_settings, screen, stats) # 创建一架飞机 plane = Plane(game_settings, screen) # 创建子弹编组 bullets = Group() # 创建敌机编组 enemies = Group() # 创建敌机群 game_functions.create_fleet(game_settings, screen, enemies, plane) # 游戏主循环 while True: # 鼠标键盘检测 game_functions.check_events(game_settings, screen, bullets, enemies, plane, play_button, stats, score_board) if stats.game_active: # 飞机移动状态更新 plane.update() # 子弹更新 game_functions.update_bullets(game_settings, screen, plane, bullets, enemies, stats, score_board) # 敌机位置更新 game_functions.update_enemies(game_settings, screen, plane, bullets, enemies, stats, score_board) # 更新屏幕 game_functions.update_screen(game_settings, screen, plane, bullets, enemies, stats, play_button, score_board)
def run_game(): # Initialise pygame, settings and screen object pygame.init() game_settings = Settings() screen = pygame.display.set_mode( (game_settings.screen_width, game_settings.screen_height)) pygame.display.set_caption("Flatpormer") # Create the scoreboard for game information and stats high_score = gf.get_high_score() stats = GameStats(game_settings, high_score) scoreboard = ScoreBoard(game_settings, screen, stats) # Create a character instance character = Character(screen, game_settings) # Create a level with platforms and enemies level = Level(screen, character, game_settings) # Create the play button play_button = Button(game_settings, screen) # Initialise joystick pygame.joystick.init() gamepad = pygame.joystick.Joystick(0) gamepad.init() # load sounds sounds = gf.load_sounds() # Start the main loop for the game. while True: gf.check_events(screen, character, level, game_settings, stats, scoreboard, play_button, sounds, gamepad) if pygame.joystick.get_count() > 0: gf.check_gamepad_direction(gamepad, character) if stats.game_active: gf.check_platform_collisions(character, level.platforms) gf.check_gravity(character, level.platforms) character.update() gf.update_enemies(level) # Check for player-enemy collisions gf.check_enemy_collision(screen, character, game_settings, scoreboard, level, stats, sounds) # Check if player has completed the level gf.check_level_complete(screen, character, game_settings, level, scoreboard, stats, sounds) gf.update_screen(screen, character, game_settings, level, scoreboard, stats, play_button)
def run_game(): #Inicjalizacja gry i utworzenie obiektu ekranu. pygame.init() #pygame.mixer.init() ai_settings = Settings() screen = pygame.display.set_mode( (ai_settings.screen_width, ai_settings.screen_height)) pygame.display.set_caption("Star Wars") #pygame.mixer.music.load('music.wav') #pygame.mixer.music.play(-1) #Dane statystyczne stats = GameStats(ai_settings) sb = Scoreboard(ai_settings, screen, stats) #Utworzenie statku Tie_Fighter = Enemy(ai_settings, screen) X_Wing = xWing(ai_settings, screen) bullets = Group() enemies = Group() gf.create_fleet(ai_settings, screen, X_Wing, enemies) play_button = Button(ai_settings, screen, "Gra") #Rozpoczęcie pętli głównej gry. while True: #Oczekiwanie na wciśnięcie klawisza lub przycisku myszy. gf.check_events(ai_settings, screen, stats, sb, play_button, X_Wing, enemies, bullets) if stats.game_active: X_Wing.update() gf.update_bullets(ai_settings, screen, stats, sb, X_Wing, enemies, bullets) gf.update_enemies(ai_settings, stats, screen, sb, X_Wing, enemies, bullets) gf.update_screen(ai_settings, screen, stats, sb, X_Wing, enemies, bullets, play_button)
def run_game(): """ Initialize game and create a screen object """ pygame.init() game_settings = Settings() screen = pygame.display.set_mode((game_settings.screen_width, game_settings.screen_height)) pygame.display.set_caption("Rebel Defender") clock = pygame.time.Clock() # Make play button play_button = Button(game_settings, screen, "Play") # Store game statistics stats = GameStats(game_settings) # Scoreboard sb = Scoreboard(game_settings, screen, stats) # Make a ship ship = Ship(game_settings, screen) icon_ship = IconShip(game_settings, screen) # Make a a group of enemies enemies = Group() gf.create_fleet(game_settings, screen, ship, enemies) # Make a cache of bullets bullets = Group() # Make starfield starfield = Starfield(game_settings).generate_starfield() # Start the main loop of the game while True: clock.tick(50) gf.check_events(game_settings, stats, sb, screen, ship, enemies, bullets, play_button) if stats.game_active: ship.update() gf.update_bullets(game_settings, screen, stats, sb, ship, enemies, bullets) gf.update_enemies(game_settings, stats, screen, sb, ship, enemies, bullets) gf.update_screen(game_settings, screen, stats, sb, starfield, ship, enemies, bullets, play_button)
def run_game(): # Initialize pygame, settings and create a screen object pygame.init() sws_settings = Settings() screen = pygame.display.set_mode( (sws_settings.screen_width, sws_settings.screen_height)) pygame.display.set_caption('Sideways Shooter') # Make the Play button play_button = Button(sws_settings, screen, "Play") # Create an instance to store game statistics and create a scoreboard stats = GameStats(sws_settings) sb = ScoreBoard(sws_settings, screen, stats) # Make a ship, bullets and an enemy ship = Ship(sws_settings, screen) bullets = Group() enemies = Group() gf.create_enemy(sws_settings, screen, ship, enemies) # Start the main loop for the game while True: # Watch for keyboard and mouse events gf.check_events(sws_settings, screen, stats, sb, play_button, ship, enemies, bullets) if stats.game_active: ship.update() gf.update_enemies(sws_settings, stats, screen, sb, ship, enemies, bullets) gf.update_screen(sws_settings, screen, stats, sb, ship, enemies, bullets, play_button)
def run_game(): # initiate 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('Shoot Trump, Save the World') # create play button btn_play = Button(ai_settings, screen, 'Play') # create a tank tank = Tank(ai_settings, screen) # create bullet group bullets = Group() # create enemy enemies = Group() gf.create_fleet(ai_settings, screen, tank, enemies) # create game stats instance stats = Game_stats(ai_settings) scoreboard = Scoreboard(ai_settings, screen, stats) # game main loop while True: # moniter keyboard and mouse event gf.check_events(ai_settings, screen, stats, scoreboard, btn_play, tank, enemies, bullets) if stats.game_active: tank.update() gf.update_bullets(ai_settings, screen, stats, scoreboard, tank, bullets, enemies) gf.update_enemies(ai_settings, stats, scoreboard, screen, tank, enemies, bullets) gf.update_screen(ai_settings, screen, stats, scoreboard, tank, enemies, bullets, btn_play)
def run_game(): # 初期化一个 pygame.init() ai_settings = Settings() tank_map.set_map("user_id", "") tank_map.set_map("score", 0) tank_map.set_map("double_flg", 0) screen = pygame.display.set_mode( (ai_settings.screen_width, ai_settings.screen_height)) pygame.display.set_caption("Tank Battle") # 创建一个坦克 tank = Tank(ai_settings, screen) tank2 = None # 创建一个子弹分组 bullets = Group() # 创建一个敌人子弹分组 enemy_bullets = Group() # 创建一个敌人编组 enemies = Group() # 创建一个敌人 # enemy = Enemy(ai_settings, screen) # 创建外敌人群 gf.create_fleet(ai_settings, screen, enemies) # 创建一个砖墙编组 gf.create_map(ai_settings, screen) # 创建一个炸弹的编组 booms = Group() # bg_color = (230, 230, 230) stats = GameStats(ai_settings) # 创建一个Font对象 font = pygame.font.SysFont("arial", 36) font.set_bold(True) clock = pygame.time.Clock() wait_count = 0 invincible_count = 0 ranking_is_show = False # 开启游戏主循环 while True: clock.tick(100) # 监视键盘鼠标 gf.check_events(ai_settings, screen, tank, tank2, bullets, stats) if stats.game_active: if stats.game_step == GameStep.login: wait_count += 1 user_id = tank_map.get_map("user_id") gf.login(screen, wait_count, user_id) if wait_count > 100: wait_count = 0 elif stats.game_step == GameStep.init: wait_count = 0 gf.start_image_update(tank, screen) elif stats.game_step == GameStep.ready: gf.init_home(ai_settings, screen) # 关卡信息显示 wait_count += 1 text_surface = font.render(u'level {0}'.format(stats.level), False, ai_settings.failed_color) text_rect = text_surface.get_rect() text_rect.centerx = screen.get_rect().centerx text_rect.centery = screen.get_rect().centery screen.fill(ai_settings.bg_color) screen.blit(text_surface, text_rect) pygame.display.flip() if wait_count == 100: wait_count = 0 stats.game_step = GameStep.start elif stats.game_step == GameStep.start: ranking_is_show = False # 显示第二个英雄 if ai_settings.has_tank2 and tank2 is None: tank2 = Tank(ai_settings, screen, 2) tank2.x = 300 tank2.rect.bottom = screen.get_rect().bottom - 20 tank2.y = tank2.rect.y tank2.moving_image = tank2.image tank_map.set_map("double_flg", 1) if not ai_settings.has_tank2: tank2 = None wait_count += 1 # 每隔500,刷出敌人 if wait_count == 500: wait_count = 0 if len(enemies) < ai_settings.enemies_allowed: gf.create_fleet(ai_settings, screen, enemies) # 无敌的计算 if tank.is_invincible or (tank2 is not None and tank2.is_invincible): invincible_count += 1 if invincible_count == 400: invincible_count = 0 tank.is_invincible = False if tank2 is not None: tank2.is_invincible = False # 刷新英雄坦克位置 tank.update() if tank2 is not None: tank2.update() # enemy.upadte(bullets) # 其他显示精灵刷新 gf.update_bullets(ai_settings, enemies, tank, tank2, bullets, enemy_bullets, screen, stats, booms) gf.update_enemies(enemies, enemy_bullets, stats) gf.update_booms(booms) gf.update_screen(ai_settings, screen, tank, tank2, enemies, bullets, enemy_bullets, booms) # print(len(enemy_bullets)) elif stats.game_step == GameStep.levelChange: wait_count = 0 stats.level += 1 tank.x = 120 tank.y = 280 stats.game_step = GameStep.init ai_settings.enemies_allowed = ai_settings.enemies_all * stats.level gf.init_tank(tank, 0, screen) if tank2 is not None: gf.init_tank(tank2, 1, screen) stats.game_step = GameStep.ready elif stats.game_step == GameStep.total: # 显示排行榜 if not ranking_is_show: ranking_is_show = True gf.show_ranking_list(screen) else: gf.over_image_update(screen)
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("Your Life") #设置背景图片 background = Bg(ai_settings, screen) #鼠标设置为准心 aim = Mouse(ai_settings, screen) #创建主角 char = Char(ai_settings, screen) mysprite = MySprite(screen, char) #创建敌人 enemies = Group() # #创建计时器 # timer = Timeclock() # 创建Play按钮 play_button = Play_Button(ai_settings, screen, "Play") # 创建Quit按钮 quit_button = Quit_Button(ai_settings, screen, "Quit") # 创建存储游戏统计信息的实例,并创建记分牌 stats = GameStats(ai_settings) sb = Scoreboard(ai_settings, screen, stats, char) #添加背景音乐循环播放 pygame.mixer.music.load('music/game_over.wav') pygame.mixer.music.play(-1, 0.0) while True: gf.check_events(ai_settings, screen, char, stats, sb, play_button, quit_button, background, enemies) gf.update_screen(ai_settings, screen, stats, sb, play_button, quit_button, aim, background, char, enemies) if stats.game_active: gf.update_enemies(ai_settings, screen, sb, stats, char, background, enemies, play_button, quit_button) #不同阶段玩家形态不同,敌人也不同 if background.bg_x > -400 and background.bg_x <= 0: #添加文字说明 myfont = pygame.font.Font(None, 100) myfont.set_underline(True) myfont.set_bold(True) textImage = myfont.render("babyhood", True, (255, 255, 0)) screen.blit(textImage, (210, 100)) #更新主角 char.update_default(screen, background) mysprite.update_stage1(char) mysprite.load("images/baby_72x36x3.png", 72, 36, 3) gf.char_walking(screen, mysprite, char) elif background.bg_x < -400 and background.bg_x > -1200: #添加文字说明 myfont = pygame.font.Font(None, 100) myfont.set_underline(True) myfont.set_bold(True) textImage = myfont.render("childhood", True, (255, 255, 0)) screen.blit(textImage, (210, 100)) #更新敌人图片 for enemy in enemies: enemy.image = pygame.image.load( 'images/duck.png').convert_alpha() #更新主角图片 char.update_stage1(screen, background) mysprite.update_stage1(char) mysprite.load("images/child_48x72x4.png", 48, 72, 4) gf.char_walking(screen, mysprite, char) elif background.bg_x < -1200 and background.bg_x > -2000: #添加文字说明 myfont = pygame.font.Font(None, 100) myfont.set_underline(True) myfont.set_bold(True) textImage = myfont.render("youth", True, (255, 255, 0)) screen.blit(textImage, (280, 100)) for enemy in enemies: enemy.image = pygame.image.load( 'images/mathbook.png').convert_alpha() char.update_stage2(screen, background) mysprite.update_stage1(char) mysprite.load("images/teenager_48x112x4.png", 48, 112, 4) gf.char_walking(screen, mysprite, char) elif background.bg_x < -2000 and background.bg_x > -2800: #添加文字说明 myfont = pygame.font.Font(None, 100) myfont.set_underline(True) myfont.set_bold(True) textImage = myfont.render("middle age", True, (255, 255, 0)) screen.blit(textImage, (210, 100)) for enemy in enemies: enemy.image = pygame.image.load( 'images/paperclip.png').convert_alpha() char.update_stage3(screen, background) char.blitme() elif background.bg_x < -2800 and background.bg_x > -3600: #添加文字说明 myfont = pygame.font.Font(None, 100) myfont.set_underline(True) myfont.set_bold(True) textImage = myfont.render("old age", True, (255, 255, 0)) screen.blit(textImage, (280, 100)) for enemy in enemies: enemy.image = pygame.image.load( 'images/drug.png').convert_alpha() char.update_stage4(screen, background) mysprite.update_stage1(char) mysprite.load("images/bold_48x96x2.png", 48, 96, 2) gf.char_walking(screen, mysprite, char) elif background.bg_x < -3600 and background.bg_x > -4800: for enemy in enemies: enemy.image = pygame.image.load( 'images/star.png').convert_alpha() char.update_stage5(screen, background) char.blitme() #添加文字,创建对象 myfont = pygame.font.Font(None, 50) #修饰文字 myfont.set_underline(True) myfont.set_bold(True) myfont.set_italic(True) textImage1 = myfont.render("Congratulations!", True, (144, 238, 0)) textImage2 = myfont.render( "You have gone through your entire life!", True, (144, 238, 0)) textImage3 = myfont.render("Thanks for playing!", True, (144, 238, 0)) screen.blit(textImage1, (220, 100)) screen.blit(textImage2, (30, 150)) screen.blit(textImage3, (220, 200)) #虽然玩家还可以移动,并且敌人继续掉落,但游戏结束了,即便你继续射击敌人也不会有分数,玩家也不会死亡 ai_settings.enemy_points = 0 ai_settings.enemy_damage = 0 pygame.display.update()
HEIGHT = BG_IMGS[0].get_height() WIDTH = BG_IMGS[0].get_width() done = False bg = Background(settings, BG_IMGS, HEALTH_IMG, PROJECTILE_IMG) player = Player(settings, 100, 620, F_PENGUIN_IMGS, B_PENGUIN_IMGS) enemies = [Enemy(settings, 1200, random.randint(530, 630), B_PENGUIN_IMGS)] loot_list = [] enemy_bullets = Group() player_bullets = Group() clock = pygame.time.Clock() while not done: gf.check_events(settings, player, player_bullets, F_PROJECTILE_IMG, B_PROJECTILE_IMG) player.update() gf.update_enemy_bullets(enemy_bullets, player) gf.update_player_bullets(settings, player_bullets, enemies, loot_list, LOOT_IMGS) gf.update_enemies(settings, enemies, B_PENGUIN_IMGS) gf.take_shot(settings, enemy_bullets, enemies, player, F_PROJECTILE_IMG, B_PROJECTILE_IMG) gf.update_loot(settings, loot_list, player) bg.draw(settings, screen, enemies, player_bullets, enemy_bullets, loot_list, player, STAT_FONT) bg.move() pygame.display.flip() clock.tick(settings.fps_multipler * 30)