Type object 'player' has no attribute 'image'
RésoluDiablo76 Messages postés 344 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voici mon code :
from typing import Union
import player as player
import pygame
from pygame import Surface
from pygame.surface import SurfaceType
pygame.init()
class player(pygame.sprite.Sprite):
def __int__(self):
super().__init__()
self.velocity = 5
self.image = pygame.image.load('assets/joueur 1.png')
self.rect = self.image.get_rect()
pygame.display.set_caption("nba_2023")
screen: Union[Surface,SurfaceType] = pygame.display.set_mode((1320,720))
background = pygame.image.load('assets/terrain final nba_2023.png')
player = Player()
running = True
while running:
screen.blit(background,(-49, 40))
screen.blit(Player.image, Player.rect)
pygame.display.flip()
for event in pygame.event.get():
if event.type == pygame.QUIT():
running = False
pygame.quit()
À chaque fois que je le lance il me dit erreur.
Windows / Edge 115.0.1901.200
3 réponses
-
Bonjour,
class player(pygame.sprite.Sprite):
Nom de la classe : player sans majuscule
player = Player()
Nom de la classe : Player avec une majuscule
Etonnant, non ?
-
Bonjour,
Juste pour préciser ce que dit Phil_1857 : ton erreur vient du fait que tu confonds le nom de la classe (le type) et le nom de l'instance (la variable). Par convention, en python, les noms de variables commencent par une minuscules et les noms de classes commencent par une console.
Vu que ligne 22, tu écris :
player = Player()
- player est un nom d'instance (variable)
- Player est un nom de classe (type)
Or si on regarde ligne 9, ta classe est déclarée avec un nom qui commence par une minuscule. Il faut donc corriger cette ligne en :
class Player:
Bonne chance
-
-
Salut,
Et le constructeur ne se nomme pas :
def __int__(self):
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
pour commencer, arrête d'utiliser ainsi le nom "player" pour tant d'éléments différents.
Utilise un autre nom pour ta classe ainsi que pour ta variable
class personnage(pygame.sprite.Sprite): joueur = Player()