Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Aguiar <alanjas@hotmail.com>2014-01-08 00:18:53 (GMT)
committer Alan Aguiar <alanjas@hotmail.com>2014-01-08 00:18:53 (GMT)
commit0b32e1ab84c9b874f39db8bc096b8d44f108652d (patch)
tree3b2ea976385599ed382f582fdb5139c443387d4f
parent9050bbd54eeb2a2ad0b5583400512694c39824db (diff)
save stats
-rwxr-xr-xSpaceWar.py43
-rw-r--r--activity.py2
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)