老师帮看看是哪里出错了
import pygame
import constants
class Plane(pygame.sprite.Sprite):
'''
飞机的基础类
'''
#飞机的图片
plane_images = []
#飞机爆炸的图片
destroy_images = []
#坠毁的音乐地址
down_sound_src = None
#飞机的状态:True飞机存活、False飞机炸毁
active = True
#该飞机发射的子弹精灵组
bullets = pygame.sprite.Group()
def __init__(self, screen, speed = None):
super().__init__()
self.screen = screen
''' 加载静态资源 '''
self.img_list = []
self._destroy_img_list = []
self.dowm_sound = None
self.load_src()
#飞行的速度
self.speed = speed or 10
#获取飞机的位置
self.rect = self.img_list[0].get_rect()
def load_src(self):
''' 加载静态资源 '''
#飞机图像
for img in self.plane_images:
self.img_list.append(pygame.image.load(img))
#飞机坠毁图像
for img in self.destroy_images:
self._destroy_img_list.append(pygame.image.load(img))
#飞机坠毁音乐
if self.down_sound_src:
self.dowm_sound = pygame.mixer.Sound(self.down_sound_src)
@property
def image(self):
return self.img_list[0]
def blit_my_plane(self):
self.screen.blit(self.image, self.rect)
def move_up(self):
''' 飞机向上移动 '''
self.rect.top -= self.speed
def move_down(self):
''' 飞机向下移动 '''
self.rect.top += self.speed
def move_left(self):
''' 飞机向左移动 '''
self.rect.left -= self.speed
def move_right(self):
''' 飞机向右移动 '''
slef.rect.left += self.speed
def broken_down(self):
''' 飞机坠毁效果 '''
# 1.播放坠毁音乐
if self.dowm_sound:
self.dowm_sound.play()
# 2.播放坠毁的动画
for img in self._destroy_img_list:
self.screen.blit(img, self.rect)
# 3.坠毁后...
self.active = False
class Ourplane(Plane):
''' 我方的飞机 '''
#飞机图片
plane_images = [constants.OUR_PLANE_IMG_1, constants.OUR_PLANE_IMG_1]
#飞机坠毁图片
destroy_images = constants.OUR_DESTROY_IMG_LIST
#飞机坠毁音乐
down_sound_src = None
def update(self, frame):
""" 更新飞机的动画效果 """
if frame % 5 == 0:
self.screen.blit(img_list[0], self.rect)
else:
self.screen.blit(img_list[1], self.rect)
报错:
Hello from the pygame community. https://www.pygame.org/contribute.html
Traceback (most recent call last):
File "G:/python_game/venv/main.py", line 94, in <module>
main()
File "G:/python_game/venv/main.py", line 84, in main
our_plane.update(frame)
File "G:\python_game\venv\plane_wars\plane.py", line 100, in update
self.screen.blit(img_list[1], self.rect)
NameError: name 'img_list' is not defined
正在回答 回答被采纳积分+1
一直知道错误在哪里了,不用麻烦老师帮看代码了
- 参与学习 人
- 提交作业 2727 份
- 解答问题 8160 个
想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星