老师帮看看是哪里出错了

老师帮看看是哪里出错了

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

登陆购买课程后可参与讨论,去登陆

1回答
提问者 weixin_慕函数学无止境 2019-12-29 23:21:52

一直知道错误在哪里了,不用麻烦老师帮看代码了

  • 同学你好:学习愉快^_^,加油!
    2019-12-30 09:47:30
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
1.Python零基础入门
  • 参与学习           人
  • 提交作业       2727    份
  • 解答问题       8160    个

想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师