pygame.display.set_mode(x, y)设置显示窗口大小
pygame.sprite.Sprite方法中有image, rect, speed等参数
其中image 可以通过 pygame.image.load('图片路径')进行加载,rect为记录位置信息的元组(x, y, width, hight)
pygame.Rect(x, y, width, hight) # 可定义一个矩形变量,和rect一样
pygame.USEREVENT # 可自定义用户事件,常量名最好全是大写字母
pygame.time.set_timer(用户事件名, 频率) # 定义以多快的频率触发用户事件,频率为多少毫秒每次,常和pygame.USEREVENT一起使用
for event in pygame.event.get():
if event.type == 用户事件名:
# 捕获事件,注意一定要加type
keys_pressed = pygame.key.get_pressed()
# 判断元组中对应的按键索引值 1
if keys_pressed[pygame.K_RIGHT]:
# 捕获键盘,执行相应操作
clock = pygame.time.Clock()
clock.tick(频率) # 定义游戏循环频率,为没秒钟循环多少次
group = pygame.sprite.Group() # 设置精灵组
group.update()
group.draw(screen) # 更新显示精灵组
pygame.display.update() #更新显示屏幕
# 1. 子弹摧毁敌机,pygame自带碰撞检测
pygame.sprite.groupcollide(self.hero.bullets, self.enemy_group, True, True)
# 2. 敌机撞毁英雄
enemies = pygame.sprite.spritecollide(self.hero, self.enemy_group, True) # 返回所有与英雄所碰撞的敌机列表
# 判断列表时候有内容
if len(enemies) > 0:
# 让英雄牺牲
self.hero.kill() # 删除精灵
# 结束游戏
PlaneGame.__game_over()
class GameSprite(pygame.sprite.Sprite):
"""飞机大战游戏精灵"""
def __init__(self, image_name, speed=1):
# 调用父类的初始化方法
super().__init__()
# 定义对象的属性
self.image = pygame.image.load(image_name)
self.rect = self.image.get_rect()
self.speed = speed
def update(self): # 重写update方法可使精灵按照自定义的方式更新位置
# 在屏幕的垂直方向上移动
self.rect.y += self.speed