class Entity(Transformable): def __init__(self, sprite, **kwArgs): super().__init__(**kwArgs) self._sprite = sprite self._sprite.setTransform(self.getTransform().createChild()) self._collider = CollisionRect(self._sprite.getImage().width, self._sprite.getImage().height, t=self.getTransform().createChild()) self._collider.addListener(self) self._boundsDisplay = SceneObject(dataSrc = self._collider, t=self._collider.getTransform(), color=Color.Green, \ batch=pyglet.graphics.Batch(), group=LinePolygonMode) '''''''''''''''''''''''''''''''''''''''''''''''''' def update(self, dt): if self._sprite.update(dt): self._updateDimensions() self._collider.update(dt) def _updateDimensions(self): w, h = self._sprite.getDimensions() self._collider.resize(w, h) '''''''''''''''''''''''''''''''''''''''''''''''''' def notifyCollisions(self, colliderObj, otherColliders): if self._boundsDisplay: if otherColliders: self._boundsDisplay.setColor(Color.Red) else: self._boundsDisplay.setColor(Color.Green) '''''''''''''''''''''''''''''''''''''''''''''''''' def getSprite(self): return self._sprite