• Как выполнить действие при столкновении игрока с объектом только один раз?

    Если игрок имеет возможность пересекаться с несколькими объектами имеет смысл сохранить объекты в списке и тогда можно будет точно определить когда игрок начал взаимодействие с каким либо обьектом

    class Player(object):
        def __init__(self):
            self.colliders = list()
    
        def collide(self, xvel, yvel,  plantlist):
            for plant in plantlist:
                collide = collide_rect(self, plant)
                if collide and plant in self.colliders:
                    # Выполняется каждый раз пока игрок пересечен с растением
                    pass
                if collide and not plant in self.colliders:
                    self.colliders.append(plant)
                    # Выполняется только один раз при пересечении с растением
                if not collide and plant in self.colliders:
                    self.colliders.remove(plant)
                    # Выполняется только один раз когда игрок перестает пересекаться с растением
    Ответ написан
    Комментировать