Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamus_ <mail2samus@gmail.com>2009-10-16 14:37:25 (GMT)
committer Samus_ <mail2samus@gmail.com>2009-10-16 14:37:25 (GMT)
commit9155fd167a0ad54975b60db35ab494528a50c546 (patch)
tree6c7e343125171a2dac8f4e7f1b1755f20de1030b
parent02dfd15f4b153c9c8e68c4cf57aa8ecf4bb26d56 (diff)
integrating state_info into BaseClass
-rw-r--r--estados.py22
1 files changed, 15 insertions, 7 deletions
diff --git a/estados.py b/estados.py
index d0a521b..bf8bd73 100644
--- a/estados.py
+++ b/estados.py
@@ -12,8 +12,16 @@ class BaseState(object):
def __init__(self, appmanager):
super(BaseState, self).__init__()
+
self._appmanager = appmanager
- print self.__class__
+ # cuando BaseState se instancia desde una clase heredada self.__class__ es esa clase y no BaseState
+ # esto nos permite usar la clase misma como llave en el diccionario
+ self.state_info = appmanager.state_info[self.__class__] if self.__class__ in appmanager.state_info else {}
+
+
+ def change_state(self, new_state):
+ self._appmanager.state_info[self.__class__] = self.state_info
+ self._appmanager.change_state(new_state)
class Inicio(BaseState):
@@ -30,7 +38,7 @@ class Inicio(BaseState):
def on_buttonjugar_clicked(self, widget):
log.debug("-> cambiar estado a Start")
- self._appmanager.change_state(Start(self._appmanager))
+ self.change_state(Start(self._appmanager))
class Start(BaseState):
@@ -48,8 +56,8 @@ class Start(BaseState):
def on_drawingarea_button_press_event(self, widget, event):
#log.debug("-> cambiar estado a Fin")
- #self._appmanager.change_state(Fin(self._appmanager))
- self._appmanager.change_state(Juego(self._appmanager))
+ #self.change_state(Fin(self._appmanager))
+ self.change_state(Juego(self._appmanager))
def on_drawingarea_expose_event(self, widget, event):
@@ -76,7 +84,7 @@ class Juego(BaseState):
def on_drawingarea_button_press_event(self, widget, event):
log.debug("-> cambiar estado a Fin")
- self._appmanager.change_state(Fin(self._appmanager))
+ self.change_state(Fin(self._appmanager))
def on_drawingarea_expose_event(self, widget, event):
@@ -87,7 +95,7 @@ class Juego(BaseState):
def on_button_clicked(self, widget):
log.debug("-> cambiar estado a Start")
- self._appmanager.change_state(Fin(self._appmanager))
+ self.change_state(Fin(self._appmanager))
class Fin(BaseState):
@@ -105,7 +113,7 @@ class Fin(BaseState):
def on_drawingarea_button_press_event(self, widget, event):
log.debug("-> cambiar estado a Start")
- self._appmanager.change_state(Start(self._appmanager))
+ self.change_state(Start(self._appmanager))
def on_drawingarea_expose_event(self, widget, event):