在创建一行外星人处出现了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)后报错。