Mercurial > mamba
changeset 24:30d4f3e62bcf
Refactor widgets *again*, add container to Habitat
author | Stefano Rivera <stefano@rivera.za.net> |
---|---|
date | Sun, 11 Sep 2011 14:21:50 +0200 |
parents | d0e8940df703 |
children | b38411d253e3 |
files | mamba/engine.py mamba/habitats/level.py mamba/widgets/base.py mamba/widgets/level.py |
diffstat | 4 files changed, 15 insertions(+), 22 deletions(-) [+] |
line wrap: on
line diff
--- a/mamba/engine.py Sun Sep 11 14:06:58 2011 +0200 +++ b/mamba/engine.py Sun Sep 11 14:21:50 2011 +0200 @@ -1,5 +1,6 @@ """Game engine and top-level game loop.""" +from mamba.widgets.base import Container import pygame.event import pygame.display from pygame.locals import QUIT, USEREVENT @@ -28,11 +29,15 @@ class Habitat(object): + + def __init__(self): + self.container = Container() + def dispatch(self, ev): - pass + self.container.event(ev) def draw(self, surface): - pass + self.container.draw(ev) class UserEvent(object):
--- a/mamba/habitats/level.py Sun Sep 11 14:06:58 2011 +0200 +++ b/mamba/habitats/level.py Sun Sep 11 14:21:50 2011 +0200 @@ -7,11 +7,6 @@ class LevelHabitat(Habitat): def __init__(self, level_name): + super(LevelHabitat, self).__init__() self.level = Level(level_name) - self.level_widget = LevelWidget(self.level) - - def draw(self, surface): - self.level_widget.draw(surface) - - def dispatch(self, ev): - self.level_widget.event(ev) + self.container.add(LevelWidget(self.level))
--- a/mamba/widgets/base.py Sun Sep 11 14:06:58 2011 +0200 +++ b/mamba/widgets/base.py Sun Sep 11 14:21:50 2011 +0200 @@ -6,11 +6,11 @@ def __init__(self, rect): self.rect = pygame.Rect(rect) - def do_event(self, event): + def event(self, event): "Override me" pass - def do_draw(self, surface): + def draw(self, surface): "Override me" pass @@ -23,18 +23,11 @@ def event(self, event): for child in self.children: # TODO mouse events - if issubclass(child, Container): - child.event(event) - else: - child.do_event(event) + child.event(event) def add(self, widget): self.children.append(widget) def draw(self, surface): - self.do_draw(surface) for child in self.children: - if issubclass(child, Container): - child.draw(surface) - else: - child.do_draw(surface) + child.draw(surface)
--- a/mamba/widgets/level.py Sun Sep 11 14:06:58 2011 +0200 +++ b/mamba/widgets/level.py Sun Sep 11 14:21:50 2011 +0200 @@ -8,10 +8,10 @@ level_rect = Rect(offset, level.get_size()) super(LevelWidget, self).__init__(level_rect) - def do_draw(self, surface): + def draw(self, surface): # TODO: Implement pass - def do_event(self, event): + def event(self, event): # TODO: Implement pass