From 0b32e1ab84c9b874f39db8bc096b8d44f108652d Mon Sep 17 00:00:00 2001 From: Alan Aguiar Date: Wed, 08 Jan 2014 00:18:53 +0000 Subject: save stats --- 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 +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) -- cgit v0.9.1