提问者:小点点

Ballons对象没有图像属性


我找不到错误。试了几个小时。

当我运行代码时,我得到消息:

Ballons的对象没有属性图像

详细信息如下:

回溯(最近一次调用last):文件“c:\pythonprogram\ballon\u jagd copy.py”,第47行,在ballon\u精灵中。绘制(spielfeld)文件“C:\Users\chef\AppData\Local\Programs\Python39\lib\site packages\pygame\sprite.py”,第546行,在绘制图面中。sprite中spr的blits((spr.image,spr.rect)文件“C:\Users\chef\AppData\Local\Programs\Python\Python39\lib\site packages\pygame\sprite.py”,第546行,在surface中。blits((spr.image,spr.rect)用于精灵中的spr)AttributeError:“气球”对象没有属性“image”

代码如下:

 class Ballons(pygame.sprite.Sprite):
    def __init__(self):
        pygame.sprite.Sprite.__init__(self)     

        z_bild = pygame.image.load("Bilder/ballons/ballon1.png")       
        self.einzel_bild = z_bild
        self.rect = self.einzel_bild.get_rect()
        self.rect_x = random.randint(100,1800)
        self.rect_y = 700 
        
    def update(self):        
        self.rect_y -=5

def draw_bg():
    spielfeld.fill(bg)

#Allgemein..............................................
pygame.init()
clock = pygame.time.Clock()
bg = (50,250,50)

#Spielfeld.............................................. 
bild_breite = 1920
bild_hoehe = 1080
spielfeld = pygame.display.set_mode((bild_breite,bild_hoehe))

#Erstellung Sprite und Group

ballon_sprites = pygame.sprite.Group()
ballon = Ballons()
ballon_sprites.add(ballon)

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
   
    #Zeichnen        
    draw_bg()    
    ballon_sprites.draw(spielfeld) 
    ballon_sprites.update()
    pygame.display.flip()
    clock.tick(60)nter code here
    

共1个答案

匿名用户

pygame。(传说中的)精灵组draw()使用包含的pygame的图像rect属性。(传说中的)精灵精灵s以绘制对象。请参见pygame。(传说中的)精灵组draw()

将包含的精灵绘制到Surface参数。这使用了源表面的Sprite.image属性和Sprite.rect。[...]

因此,一个Ballon必须具有一个名为Image的属性:

class Ballons(pygame.sprite.Sprite):
    def __init__(self):
        pygame.sprite.Sprite.__init__(self)     

        self.image = pygame.image.load("Bilder/ballons/ballon1.png")       
        
        self.rect = self.image.get_rect()
        self.rect_x = random.randint(100,1800)
        self.rect_y = 700 
        
    def update(self):        
        self.rect_y -=5