AttributeError: 'Hero' object has no attribute 'image'


#导入pygame 库
import pygame
#设置常量
#颜色
GREEN=(0,197,205)
BLACK=(0,0,0)


#初始化
pygame.init()
#创建游戏窗口
screen=pygame.display.set_mode((800,600))#宽和高(screen 接入)
#设置游戏名称
pygame.display.set_caption("飞机大战")
#设置系统时钟
clock=pygame.time.Clock()

class Hero(pygame.sprite.Sprite):
    def __int__(self,image_file):
        pygame.sprite.Sprite.__init__(self,image_file)
        self.image=pygame.Surface((50,50))#大小
        self.image.fill(GREEN)#颜色
        self.rect=self.image.get_rect()#行动
#初始化英雄
hero=Hero()

#初始化精灵组
all_sprite=pygame.sprite.Group()
all_sprite.add(hero)


#游戏循环
while True:
    #设置刷新率
    clock.tick(60)#一秒钟刷新60次

    #玩家操作
    for event in pygame.event.get():#找到所有事件
        if event.type==pygame.QUIT:#如果事件类型等于关闭就关闭
            pygame.quit()
            exit()#程序关闭
    #游戏更新
    screen.fill(BLACK)
    all_sprite.update()
    #屏幕更新
    all_sprite.draw(screen)
    pygame.display.update()

为什么运行出现这种情况

img

AttributeError:“Hero”对象没有属性“image”

修改为 Hero 代码如下即可


class Hero(pygame.sprite.Sprite):
    def __init__(self, *groups):
        super().__init__(*groups)
        self.image = pygame.Surface((50, 50))  # 大小
        self.image.fill(GREEN)  # 颜色
        self.rect = self.image.get_rect()  # 行动