Hello,
Je pense que tu pourrais rajouter dans ta classe player un attribut supplémentaire qui serai un booléen :
self.collisionLocked = false
et du coup tu pourrais faire sa dans ta fonction collision de la classe goomba :
if (player.collisionLocked == false and not (blocks_hit_list == [])) and (player.rect.y >= (self.rect.y-60)):
player.health -= 1
player.collisionLocked = true
d'abord tu rajoutes dans ton if une clause si collisionLocked == false alors le joueur peut perdre de la vie. Ensuite dans le cas ou le joueur perdrait de la vie tu actives ton flag player.collisionLocked = true comme ça tu empêche la collision de se répéter dès la prochaine frame.
Ensuite il faudrait que ton flag collisionLocked passe à false au bout d'un certain délai. Je pense (mais je suis moins à l'aise là-dessus) que tu pourrais créer une méthode dans la classe player cette méthode serait démarrée dès lors que player.collisionLocked serait égal à false et vérifierait si un certain temps est passé avant de repasser le flag player.collisionLocked à true.
N'hésite pas à le faire un retour j'adore le développement de jeu et j'aimerai bien savoir comment ça a marché pour toi