fcdslfa 2019-10-22 16:06 采纳率: 0%
浏览 512

外星人入侵11.3节,draw函数报错

在创建一行外星人处出现了draw的错误。

错误提示;

Traceback (most recent call last):
  File "G:\programfile\anaconda\lib\site-packages\IPython\core\interactiveshell.py", line 3267, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-2-a8fd6439e5d9>", line 1, in <module>
    runfile('F:/xm/Python/alien_invasion/alien_invasion.py', wdir='F:/xm/Python/alien_invasion')
  File "G:\programfile\pycharm\PyCharm Community Edition 2019.2.3\helpers\pydev\_pydev_bundle\pydev_umd.py", line 197, in runfile
    pydev_imports.execfile(filename, global_vars, local_vars)  # execute the script
  File "G:\programfile\pycharm\PyCharm Community Edition 2019.2.3\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
    exec(compile(contents+"\n", file, 'exec'), glob, loc)
  File "F:/xm/Python/alien_invasion/alien_invasion.py", line 28, in <module>
    run_game()
  File "F:/xm/Python/alien_invasion/alien_invasion.py", line 24, in run_game
    gf.update_screen(ai_settings, screen, ship, alien, bullets)
  File "F:\xm\Python\alien_invasion\game_functions.py", line 39, in update_screen
    alien.draw(screen)
AttributeError: 'Alien' object has no attribute 'draw'

alien模块:

import pygame
from pygame.sprite import Sprite

class Alien(Sprite):
    def __init__(self, ai_settings, screen):
        super(Alien, self).__init__()
        self.screen = screen
        self.ai_settings = ai_settings

        self.image = pygame.image.load('images/alien.bmp')
        self.rect = self.image.get_rect()

        self.rect.x = self.rect.width
        self.rect.y = self.rect.height
        self.x = float(self.rect.x)
    def blitme(self):
        self.screen.blit(self.image, self.rect)

game_function中update_screen模块

def update_screen(ai_settings, screen, ship, aliens, bullets):
    screen.fill(ai_settings.bg_color)
    for bullet in bullets.sprites():
        bullet.draw_bullet()
    ship.blitme()
    aliens.draw(screen)**##错误代码**
    pygame.display.flip()

在显示一个外星人是可以的,但是将显示外星人的代码改成aliens.draw(screen)后报错。

  • 写回答

1条回答 默认 最新

  • 毁人不倦295 2021-10-24 09:27
    关注

    错误在于Group的后面没有加()

    评论

报告相同问题?

悬赏问题

  • ¥15 cgictest.cgi文件无法访问
  • ¥20 删除和修改功能无法调用
  • ¥15 kafka topic 所有分副本数修改
  • ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
  • ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
  • ¥40 串口调试助手打开串口后,keil5的代码就停止了
  • ¥15 电脑最近经常蓝屏,求大家看看哪的问题
  • ¥60 高价有偿求java辅导。工程量较大,价格你定,联系确定辅导后将采纳你的答案。希望能给出完整详细代码,并能解释回答我关于代码的疑问疑问,代码要求如下,联系我会发文档
  • ¥50 C++五子棋AI程序编写
  • ¥30 求安卓设备利用一个typeC接口,同时实现向pc一边投屏一边上传数据的解决方案。