2015-12-08 4 views
1

Я разрабатываю клон Space Invaders, используя Python 3.5.1 и PyGame. Моя проблема в том, что я не могу загрузить мои спрайты на экран. Я все время получаю ошибку:Нужна помощь из-за ошибки PyGame

Traceback (самый последний вызов последний): Файл "C: \ Users \ supmanigga \ Documents \ Space Invaders \ spaceinvaders.py", строка 44, в allSprites.draw (экран) Файл «C: \ Users \ supmanigga \ AppData \ Local \ Programs \ Python \ Python35 \ lib \ site-packages \ pygame \ sprite.py", строка 475, в розыгрыше self.spritedict [spr] = surface_blit (spr.image , spr.rect) AttributeError: объект 'Судовой' не имеет атрибута 'изображение'

Мой код выглядит следующим образом:

import pygame 
import sys 

width = 500 
height = 700 

white = (255, 255, 255) 
black = (0, 0, 0) 

score = 0 

screen = pygame.display.set_mode([width, height]) 

class Ship(pygame.sprite.Sprite): 
    def _init_(self): 
     sprite.Sprite._init_(self) 
     self.image = pygame.image.load("player").convert() 
     self.rect = self.image.get_rect() 

class Enemy(pygame.sprite.Sprite): 
    def _init_(self): 
     sprite.Sprite._init_(self) 
     self.image = pygame.image.load("enemy").convert() 
     self.rect = self.image.get_rect() 

class Bullet(pygame.sprite.Sprite): 
    def _init_(self): 
     sprite.Sprite._init_(self) 
     self.image = pygame.image.load("laser").convert() 
     self.rect = self.image.get_rect() 

player = Ship() 
allSprites = pygame.sprite.Group() 
allSprites.add(player) 

running = True 
while running == True: 
    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      sys.exit() 

    screen.fill(black) 

    allSprites.draw(screen) 

    pygame.display.flip() 

pygame.quit() 

ответ

2

def _init_(self): должен быть def __init__(self):

В противном случае строка self.image = pygame.image.load("player").convert() никогда не выполняется, и, таким образом, ваш Ship экземпляр не будет иметь никакого image атрибута.

Смежные вопросы