This repository has been archived on 2019-12-09. You can view files and clone it, but cannot push or open issues or pull requests.
pacman2/engine/observer.py
papush! e8be8b52ab ajout d’Observer, le composant physique suit l’entité
implémentation du patron Observateur dans la classe Observer qui
permet à un objet d’être notifié quand une propriété d’un autre objet
est modifiée. CollideRect observe maintenant les propriétés x et y de
l’entité à laquelle il appartient et met à jour son rect accordément.
2019-12-07 12:33:50 +01:00

15 lines
445 B
Python

class Observer(object):
def __init__(self):
super().__setattr__('_subscribers', {})
def subscribe(self, name, cb):
if name not in self._subscribers:
self._subscribers[name] = []
self._subscribers[name].append(cb)
def __setattr__(self, name, val):
if name in self._subscribers:
for cb in self._subscribers[name]:
cb(val)
super().__setattr__(name, val)