I ont une méthode dans une sous-classe Sprite Pygame, défini comme tel:Python: Pourquoi une méthode se comporte-t-elle différemment avec un paramètre ajouté?
def walk(self):
"""move across screen"""
displacement = self.rect.move((self.move, 0))
if self.rect.left < self.area.left or self.rect.right > self.area.right:
self.move = -self.move
displacement = self.rect.move((self.move, 0))
self.rect = displacement
I modifié, en ajoutant un paramètre speed_x
, et maintenant le programme est cassé.
def walk(self, speed_x):
"""move across screen"""
displacement = self.rect.move((speed_x, 0))
if self.rect.left < self.area.left or self.rect.right > self.area.right:
speed_x = -speed_x
displacement = self.rect.move((speed_x, 0))
self.rect = displacement
Avant appelé la méthode comme ceci:
def update(self):
self.walk()
Maintenant, je fais:
def update(self):
self.walk(self.move)
Pourquoi pas ce travail?
Ah, c'est logique. Merci. Au lieu de changer de direction à chaque fois que l'objet (une image) atteint le bord de l'écran, l'image se coince de ce côté. C'est comme ça que ça a été cassé. – SteveStifler
@Steve, de rien, toujours heureux de vous aider! –