diff options
author | Alan Aguiar <alanjas@hotmail.com> | 2014-01-08 00:18:53 (GMT) |
---|---|---|
committer | Alan Aguiar <alanjas@hotmail.com> | 2014-01-08 00:18:53 (GMT) |
commit | 0b32e1ab84c9b874f39db8bc096b8d44f108652d (patch) | |
tree | 3b2ea976385599ed382f582fdb5139c443387d4f | |
parent | 9050bbd54eeb2a2ad0b5583400512694c39824db (diff) |
save stats
-rwxr-xr-x | SpaceWar.py | 43 | ||||
-rw-r--r-- | activity.py | 2 |
2 files changed, 41 insertions, 4 deletions
diff --git a/SpaceWar.py b/SpaceWar.py index 0f1c79e..1ec8ec5 100755 --- a/SpaceWar.py +++ b/SpaceWar.py @@ -21,6 +21,7 @@ # Contact information: # Alan Aguiar <alanjas@gmail.com> +import os import gtk import itertools import pygame @@ -34,13 +35,48 @@ POINTS_SHOT = 100 class SpaceWar(): """Top-level application class.""" - def __init__(self): + def __init__(self, parent=None): + self.parent = parent self.count = 0 self.level = 1 self.points = 0 self.old_points = 0 self.running = True self.screen = None + self.load_stats() + + def load_stats(self): + if self.parent is not None: + try: + folder = self.parent.get_activity_root() + path = os.path.join(folder, 'data', 'stats.dat') + if os.path.exists(path): + f = open(path, 'r') + val = f.readline() + val = val.strip('\n') + if not(val == ''): + level = int(val) + self.level = level + val = f.readline() + val = val.strip('\n') + if not(val == ''): + score = int(val) + self.points = score + f.close() + except Exception, err: + print 'Cannot load score', err + + def save_stats(self): + if self.parent is not None: + try: + folder = self.parent.get_activity_root() + path = os.path.join(folder, 'data', 'stats.dat') + f = open(path, 'w') + f.write(str(self.level) + '\n') + f.write(str(self.points) + '\n') + f.close() + except Exception, err: + print 'Error saving score', err def load_all(self): # Dun dun duuuuuuuun @@ -69,8 +105,8 @@ class SpaceWar(): # game labels pygame.font.init() self._font = pygame.font.Font(None, 40) - self.level_msg = self._font.render(_('Level: %s') % 1, 1, (255, 255, 255)) - self.points_msg = self._font.render(_('Score: %s') % 0, 1, (255, 255, 255)) + self.level_msg = self._font.render(_('Level: %s') % self.level, 1, (255, 255, 255)) + self.points_msg = self._font.render(_('Score: %s') % self.points, 1, (255, 255, 255)) # Game objects self.ship = Ship(self) @@ -111,6 +147,7 @@ class SpaceWar(): for evt in pygame.event.get(): if evt.type == pygame.QUIT: self.running = False + self.save_stats() elif evt.type == pygame.KEYDOWN: if evt.key == pygame.K_ESCAPE: self.running = False diff --git a/activity.py b/activity.py index 8e21bf9..5ee9a06 100644 --- a/activity.py +++ b/activity.py @@ -37,7 +37,7 @@ class SpaceWarActivity(activity.Activity): def __init__(self, handle): activity.Activity.__init__(self, handle) - self.game = SpaceWar.SpaceWar() + self.game = SpaceWar.SpaceWar(self) self.build_toolbar() self._pygamecanvas = sugargame.canvas.PygameCanvas(self) self.set_canvas(self._pygamecanvas) |