按照视频的代码,但是报了这个错误,网上没有找到类似的答案
报错代码如下:
报错如下:
全部代码如下:
import pygame
from plan_sprites import *
游戏的初始化
pygame.init()
创建游戏的窗口 大小:480*700
screen = pygame.display.set_mode((480, 700))
绘制背景图像
1.加载图像数据
bg = pygame.image.load(r"H:\py\飞机大作战\images\background.jpg")
screen.blit(bg, (0, 0))
3. updata更新屏幕
绘制英雄的飞机
hero = pygame.image.load(r"H:\py\飞机大作战\images\me1.png")
screen.blit(hero, (150, 300))
可以在所有绘制工作完成后,统一调用updata方法
pygame.display.update()
创建时钟对象
clock = pygame.time.Clock()
1.定义rect记录飞机的初始位置
hero_rect = pygame.Rect(150, 300, 102, 106)
创建敌机的精灵
enemy = GameSprite(r"H:\py\飞机大作战\images\enemy1.png")
enemy1 = GameSprite(r"H:\py\飞机大作战\images\enemy1.png")
创建敌机的精灵组
enemy_group = pygame.sprite.Group(enemy,enemy1)
游戏循环-->意味着游戏的正式开始!
while True:
# 可以指定游戏循环内部的代码执行的频率
clock.tick(60)
# # 捕获事件
# event_list = pygame.event.get()
# if len(event_list) > 0:
# print(event_list)
# 监听事件
for event in pygame.event.get():
# 判断事件类型是否是退出事件
if event.type == pygame.QUIT:
print("游戏结束!!")
# quit 卸载所有的模块
pygame.quit()
# exit()直接终止当前正在执行的程序
exit()
# 2. 修改飞机的位置
hero_rect.y -= 1
# 判断飞机的位置
if hero_rect.y <= -126:
hero_rect.y = 700
# 3. 调用blit方法绘制图像
screen.blit(bg, (0, 0))
screen.blit(hero, hero_rect)
# 让精灵组调用两个方法
# updata 让组中的所有精灵更新位置
enemy_group.update()
# drow 在screen 上绘制所有精灵
enemy_group.draw(screen)
# 4. 调用updata方法更新显示
pygame.display.update()
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
pygame.quit()