步骤4 3-6视频中的问题报错代码

步骤4 3-6视频中的问题报错代码

    our_plane.bullets.update()  # 绘制子弹

TypeError: update() missing 1 required positional argument: 'self'


正在回答 回答被采纳积分+1

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

2回答
提问者 DPS2801 2019-05-28 18:57:18

----------main.py 文件中部分代码---------:

if status == 0:  # 游戏准备中
   screen.blit(bg, bg.get_rect())  # 绘制背景
   screen.blit(game_title_img, game_title_rect)  # 绘制标题
   screen.blit(game_start_btn, game_start_rect)  # 绘制开始按钮
elif status == 1:
   screen.blit(bg, bg.get_rect())  # 绘制背景
   our_plane.update(frame)  # 绘制飞机
   our_plane.bullets.update()  # 绘制子弹    (就是这里报错)


-------------plane.py文件中部分代码----------:

def shoot(self):
   bullet = Bullet(self.screen, self, 30)  # 飞机发射子弹
   type(bullet)
   self.bullets.add(bullet)


-----------------bullet.py文件中代码:----------

def update(self, *args):  # 更新子弹位置
   self.rect.top -= self.speed   # 子弹从下方往上飞
   if self.rect.top < 0:  # 如果超出屏幕范围,则移除
       self.remove(self.plane.bulltes)  # 已加入精灵组,移除也从精灵组内里移除
       print(self.plane.bullets)
   self.screen.blit(self.image, self.rect)  # 在屏幕上画出/刷新出来



  • 同学,你好,同学给出的这段代码没有问题的,同学看下是否是bullet类中的其他部分代码写错。
    2019-05-29 10:25:44
好帮手慕美 2019-05-28 14:45:59

同学,你好,缺少了一个参数:self.our_plane.bullets.update(self)

如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~

  • 提问者 DPS2801 #1
    不行 这里的bullets = pygame.sprite.Sprite 涉及刀 def update(self, *args) pygame.sprite.Sprite.update() 应该不用传参数 但是our_plane.bullets.update() 报错了
    2019-05-28 15:11:53
  • 提问者 DPS2801 #2
    bullets = pygame.sprite.Sprite;##### def update(self, *args):###### ########## bullets.update()报错
    2019-05-28 15:14:32
  • 好帮手慕美 回复 提问者 DPS2801 #3
    同学把这部分涉及到的代码截图看一下,是不是别的地方的问题
    2019-05-28 15:50:06
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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