47 lines
1.6 KiB
Python
47 lines
1.6 KiB
Python
#胡小小Python学习之路
|
||
#外星人入侵小游戏
|
||
# alien_invasion.py
|
||
import sys
|
||
# 模块sys用来退出游戏
|
||
import pygame
|
||
from settings import Setting
|
||
# 导入刚创建的设置类
|
||
from ship import Ship
|
||
# 导入管理飞船行为的类
|
||
import game_functions as gf
|
||
from pygame.sprite import Group
|
||
#Group类类似于列表
|
||
from alien import Alien
|
||
from game_stats import GameStats
|
||
from button import Button
|
||
from scoreboard import Scoreboard
|
||
|
||
|
||
def run_game():
|
||
pygame.init() #初始化屏幕对象
|
||
ai_settings = Setting()
|
||
# 创建Setting类的实例,并存储在ai_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")#创建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,screen,stats,sb,ship,aliens,bullets)
|
||
|
||
gf.update_screen(ai_settings,screen,stats,sb,ship, aliens, bullets,play_button)
|
||
run_game()
|
||
|