外星人入侵
创建pygame窗口及相应用户输入
import sys # 使用sys中的工具退出游戏
import pygame # 模块pygame包含开发游戏所需的功能
from setting import Settings
class AlienInvasion:
'''管理游戏资源和行为的类'''
def __init__(self):
'''初始化游戏并创建游戏资源'''
pygame.init() # 初始化背景设置
self.settings=Settings()
self.screen=pygame.display.set_mode(
(self.settings.screen_width,self.settings.screen_height))
# self.screen = pygame.display.set_mode((1200, 800)) # 创建一个显示窗口,游戏所有图形元素都将在其中绘制。
# # (1200,800)是一个元组,指定游戏窗口的尺寸。宽1200像素,高800像素
pygame.display.set_caption('Alien Invasion')
# #设置背景色
# self.bg_color=(230,230,230)
def run_game(self):
'''开始游戏的主循环'''
while True:
# 监视键盘和鼠标事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
#每次循环时都重绘屏幕
self.screen.fill(self.settings.bg_color) #调用fill()用这种背景色填充屏幕,只接受一个实参:一种颜色
# 让最近绘制的屏幕可见
pygame.display.flip()
if __name__ == '__main__':
# 创建游戏实例并运行游戏
ai = AlienInvasion()
ai.run_game()
其中setting.py文件内容为:
class Settings:
'''存储游戏《外星人入侵》中所有设置的类'''
def __init__(self):
'''初始化游戏的设置'''
#屏幕设置
self.screen_width=1200
self.screen_height=800
self.bg_color=(230,230,230)
添加飞船图像
找到飞船图片飞船图片链接,在项目文件夹中新建一个名为images的文件夹,将图片ship.bmp保存其中。
import pygame
class Ship:
'''管理飞船的类'''
def __init__(self, ai_game):
'''初始化飞船并设置其初始位置'''
self.screen = ai_game.screen
self.screen_rect = ai_game.screen.get_rect()
# 加载飞船图像并获取其外接矩形
self.image = pygame.image.load('images/ship.bmp')
self.rect = self.image.get_rect()
# 对于每艘新飞船,都将其放在屏幕底部的中央
self.rect.midbottom = self.screen_rect.midbottom
def blitme(self):
'''在指定位置绘制飞船'''
self.screen.blit(self.image, self.rect)
驾驶飞船
包括响应按键,左右移动,调整飞船速度,限制飞船活动范围,按Q推出,在全屏模式下运行游戏。