alien_invasion.py
#我们使用模块sys来退出游戏
import sys
import pygame
#调用模块settings
from settings import Settings
#调用模块ship
from ship import Ship
def run_game():
#初始化游戏并且创建一个屏幕对象
pygame.init()
#创建一个Settings的实例
ai_settings=Settings()
#调用pygame.display.set_mode()来创建一个名叫screen的显示窗口
screen=pygame.display.set_mode(
(ai_settings.screen_width,ai_settings.screen_height))
#设置标题为Alien Invasion
pygame.display.set_caption("Alien Invasion")
#创建一艘飞船
ship=Ship(screen)
#开始游戏的主循环
while True:
#使用方法ppygame.event.get()来检测所有的鼠标和键盘事件
for event in pygame.event.get():
#一旦检测到pygame.QUIT事件,调用sys.exit()来退出
if event.type == pygame.QUIT:
sys.exit()
#让每次循环都重新绘制屏幕
screen.fill(ai_settings.bg_color)
#确保飞船出现在背景前面
ship.blitme()
#让最近绘制的屏幕可见,不断更新屏幕显示元素新的位置
pygame.display.flip()
run_game()
settings.py
class Settings():
#储存游戏的所有设置的类
def __init__(self):
#初始化游戏的设置
self.screen_width=800
self.screen_height=600
self.bg_color=(230,230,230)
ship.py
import pygame
class Ship():
def __init__(self,screen):
#初始化飞船并且设置它的初始位置
self.screen=screen
#加载飞船图像并获取其外接矩形
self.image=pygame.image.load('images/ship.bmp')
#使用get_rect()来获取属性rect(像矩形一样处理游戏元素)
self.rect=self.image.get_rect()
#把表示屏幕的矩形储存在self.screen_rect中
self.screen_rect=screen.get_rect()
#将每艘飞船放到屏幕底部中央
self.rect.centerx=self.screen_rect.centerx
self.rect.bottom=self.screen_rect.bottom
def blitme(self):
#在指定位置绘制飞船
self.screen.blit(self.image,self.rect)