So bin ich völlig verwirrt, warum meine Player-Klassenmethode nicht funktioniert.Probleme mit Klassenmethoden
Hier ist ein Teil meiner Spielerklasse:
class Player(pygame.sprite.Sprite):
def __init__(self):
super(Player, self).__init__()
self.size = self.w,self.h = 75,75
self.image = pygame.Surface((self.size))
self.image.fill(white)
self.move_y = 0
self.move_x = 0
self.level = None
def set_properties(self):
self.rect = self.image.get_rect()
self.speed = 5
def set_position(self, x, y):
self.rect.x = x
self.rect.y = y
Hier ist, wo ich die Methode aufrufen, set_position.
player = Player()
player.set_position(40, 40)
Alles scheint in Ordnung, aber ich bekomme die folgende Fehlermeldung:
Traceback (most recent call last):
File "C:/Desktop/CubeRunner/main_v2.py", line 194, in <module>
player.set_position(40, 40)
AttributeError: 'Player' object has no attribute 'set_position'
Ausgehend von Ihrem Einzug definieren Sie Ihre Methoden in Ihrer init-Methode. Entpacke sie so, dass sie dem Level deiner init-Methode entsprechen und du solltest in Ordnung sein. Stellen Sie außerdem sicher, dass Sie die init-Methode unter der Klassendeklaration einrücken. Momentan gehört es nicht zur Klasse. –