X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=koperkapel%2Fscenes%2Fbase.py;h=ade4d8bfddede638919ab9eb884423d38a9e55c6;hb=20d1e19f23c04daf107ede8c9fe57b97005a37fd;hp=16353d597e607f3a96ecdd1635c971362babdf29;hpb=4c6c12027a365c39ca8ca676e25b65b5eb9bd039;p=koperkapel.git diff --git a/koperkapel/scenes/base.py b/koperkapel/scenes/base.py index 16353d5..ade4d8b 100644 --- a/koperkapel/scenes/base.py +++ b/koperkapel/scenes/base.py @@ -44,9 +44,13 @@ class Engine: self._viewport = (self._viewport[0] + offset[0], self._viewport[1] + offset[1]) + def calc_offset(self, x, y): + """Return a position offset by the viewport""" + return x - self._viewport[0], y - self._viewport[1] + @apply_events def update(self, dt): - return self._scene.update(self._world.proxy(), dt) + return self._scene.update(self._world.proxy(), self, dt) def draw(self): self._scene.draw(self._app.screen, self._viewport) @@ -119,10 +123,19 @@ class Layer: def __iter__(self): return iter(self.actors) + def __getitem__(self, i): + return self.actors[i] + + def __len__(self): + return len(self.actors) + def add(self, actor): self.actors.append(actor) return actor + def clear(self): + self.actors.clear() + def remove(self, actor): self.actors.remove(actor) return actor @@ -173,7 +186,7 @@ class Scene: def exit(self, world): pass - def update(self, world, dt): + def update(self, world, engine, dt): pass def draw(self, screen, viewport):