添加 'alien_invasion'

This commit is contained in:
206530407 2021-06-22 11:34:39 +08:00
parent 66f8e10193
commit a3a00f501d
1 changed files with 46 additions and 0 deletions

46
alien_invasion Normal file
View File

@ -0,0 +1,46 @@
import pygame
from pygame.sprite import Group #导入pygame模块下sprite子模块中的Group类
from settings import Settings #导入自定义的Settings类
from ship import Ship #导入自定义的Ship类
import game_functions as gf #导入自定义的game_functions类并起别名为gf
from game_stats import GameStats #导入自定义的GameStats类
from button import Button #导入自定义的Button类
from scoreboard import Scoreboard #导入自定义的Scoreboard类
def run_game():
# 初始化pygame、设置和屏幕对象
pygame.init()
ai_settings = Settings() #实例化Settings类
screen = pygame.display.set_mode((ai_settings.screen_width, ai_settings.screen_height)) #调用display模块的set_mode()方法设置屏幕大小
pygame.display.set_caption("Alien Invasion") #调用display模块的set_caption()方法设置标题
# 创建Play按钮
play_button = Button(ai_settings, screen, "Play") #实例化Button类
# 创建存储游戏统计信息的实例,并创建记分牌
stats = GameStats(ai_settings) #实例化GameStats类
sb = Scoreboard(ai_settings, screen, stats) #实例化Scoreboard类
# 创建一艘飞船、一个子弹编组和一个外星人编组
ship = Ship(ai_settings, screen) #实例化Ship类
bullets = Group() #实例化Group类
aliens = Group() #实例化Group类
# 创建外星人群
gf.create_fleet(ai_settings, screen, ship, aliens) #调用gf模块的create_fleet()函数
# 开始游戏的主循环
while True:
# 监视键盘和鼠标事件
gf.check_events(ai_settings, screen, stats, sb, play_button, ship, aliens, bullets) #调用gf模块的check_events()函数,监测键盘和鼠标的事件
if stats.game_active:
ship.update() #调用Ship类的update()方法
gf.update_bullets(ai_settings, screen, stats, sb, ship, aliens, bullets) #调用gf模块的update_bullets函数更新子弹的状态
gf.update_aliens(ai_settings, screen, stats, sb, ship, aliens, bullets) #调用gf模块的update_aliens函数更新外星人的状态
gf.update_screen(ai_settings, screen, stats, sb, ship, aliens, bullets, play_button) #调用gf模块的update_screen函数更新屏幕的状态
run_game() #运行游戏