Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/game1
diff options
context:
space:
mode:
authorMateu Batle <mateu.batle@collabora.co.uk>2010-10-27 19:47:04 (GMT)
committer Mateu Batle <mateu.batle@collabora.co.uk>2010-10-27 19:47:04 (GMT)
commit224ae09705eef80fdfa8ccaadb0da5aba777d35c (patch)
treea5d08f7ac6419f08f1b37b24d141ac31488b9de2 /game1
parent131bc755c5738294c27f0411853d86722cb49b15 (diff)
Fixed tildes, character encoding set in iso 8859 15
added game over message to game 1 added counters to game1 added end of track detection to game 1
Diffstat (limited to 'game1')
-rwxr-xr-xgame1/collectgame.py41
-rwxr-xr-xgame1/player.py25
-rwxr-xr-xgame1/tracktmx.py15
3 files changed, 75 insertions, 6 deletions
diff --git a/game1/collectgame.py b/game1/collectgame.py
index 24ca67b..7adc99f 100755
--- a/game1/collectgame.py
+++ b/game1/collectgame.py
@@ -1,5 +1,5 @@
#!/usr/bin/python
-# -*- coding: utf-8 -*-
+# -*- coding: iso-8859-15 -*-
import pygame
import usmpgames
@@ -26,8 +26,13 @@ class CollectGame(usmpgames.ApplicationState):
def exiting_state(self, fromStack):
#music_background.stop()
self.next_state().clear_all()
+
+ total = self.track.num_odd + self.track.num_even
+
+
self.next_state().add_htmltext(
- _(""" <b>Felicidades</b>\n\nHas conseguido %d puntos""") % self.player.score,
+ _(""" <b>%s</b>\n\nHas conseguido %d puntos.\n\nHas acertado %d veces.\n\nHas realizado %d errores.""") %
+ (self.game_over_message(), self.player.score, self.player.num_ok, self.player.num_error),
color = (0, 255, 0, 0),
pos = (660, 260),
rectsize = (380, 390),
@@ -70,3 +75,35 @@ class CollectGame(usmpgames.ApplicationState):
self.track.draw(self.screen(), offsety)
self.player.draw(self.screen())
self.score.draw(self.screen())
+
+ def game_over_message(self):
+ if self.game_mode == "pares":
+ total_ok = self.track.num_odd
+ total_error = self.track.num_even
+ elif self.game_mode == "impares":
+ total_ok = self.track.num_odd
+ total_error = self.track.num_even
+ percent_ok_taken = self.player.num_ok * 100 / total_ok
+ percent_error_taken = self.player.num_error * 100 / total_error
+
+ if percent_error_taken >= percent_ok_taken:
+ if self.game_mode == "pares":
+ return _("Has de prestar más atención.\n\nCogiste más impares que pares.")
+ else:
+ return _("Has de prestar más atención.\n\nCogiste más pares que impares.")
+ else:
+ if percent_ok_taken >= 75:
+ if self.game_mode == "pares":
+ return _("Muy bién.\n\nAcertaste casi todo los pares.")
+ else:
+ return _("Muy bién.\n\nAcertaste casi todo los impares.")
+ elif percent_ok_taken >= 50:
+ if self.game_mode == "pares":
+ return _("Bastante bién.\n\nAcertaste bastantes pares.\n\nTodavía puedes hacerlo mejor.")
+ else:
+ return _("Bastante bién.\n\nAcertaste bastantes impares.\n\nTodavía puedes hacerlo mejor.")
+ else:
+ if self.game_mode == "pares":
+ return _("Regular.\n\nSigue practicando y mejorarás.\n\nÁnimo, a por los pares.")
+ else:
+ return _("Regular.\n\nSigue practicando y mejorarás.\n\nnÁnimo, a por los impares.")
diff --git a/game1/player.py b/game1/player.py
index 9199397..94f107a 100755
--- a/game1/player.py
+++ b/game1/player.py
@@ -1,5 +1,5 @@
#!/usr/bin/python
-# -*- coding: utf-8 -*-
+# -*- coding: iso-8859-15 -*-
# kinds of tiles
# - navigable
@@ -24,6 +24,8 @@ class Player(sprite.Sprite):
self.rect_sc.topleft = [self.pos_wc[0], horizon_y]
self.score = 0
self.game_mode = game_mode
+ self.num_ok = 0
+ self.num_error = 0
def update(self, milliseconds):
self.speed[1] -= friction_y
@@ -96,23 +98,44 @@ class Player(sprite.Sprite):
self.score += 20
self.image = player_image_happy
self.image_ticks = 15
+ self.num_ok = self.num_ok + 1
sound_good_choice.play()
else:
self.score -= 5
self.image = player_image_sad
self.image_ticks = 25
+ self.num_error = self.num_error + 1
sound_bad_choice.play()
elif self.game_mode =='pares':
if (num % 2) == 0 :
self.score += 20
self.image = player_image_happy
self.image_ticks = 15
+ self.num_ok = self.num_ok + 1
sound_good_choice.play()
else:
self.score -= 5
self.image = player_image_sad
self.image_ticks = 15
+ self.num_error = self.num_error + 1
sound_bad_choice.play()
if self.score <=0:
self.score=0
+
+ def number_of_errors(self):
+ self.num_error
+
+ def number_of_correct(self):
+ self.num_ok
+
+ def game_over_message(self, track):
+ if self.game_mode == "pares":
+ total_ok = track.num_odd
+ total_error = track.num_even
+ elif self.game_mode == "impares":
+ total_ok = track.num_odd
+ total_error = track_error
+
+
+ \ No newline at end of file
diff --git a/game1/tracktmx.py b/game1/tracktmx.py
index 8867942..0607319 100755
--- a/game1/tracktmx.py
+++ b/game1/tracktmx.py
@@ -1,5 +1,3 @@
-# -*- coding: utf-8 -*-
-
#!/usr/bin/python
# -*- coding: utf-8 -*-
@@ -32,6 +30,8 @@ class Track():
self.numbers_number = {}
self.touched = {}
self.load()
+ self.num_odd = 0
+ self.num_even = 0
def load(self, filename = "./tracks/track1.tmx"):
self.world_map = TileMapParser().parse_decode(filename)
@@ -39,7 +39,7 @@ class Track():
assert self.world_map.orientation == "orthogonal"
def endOfTrack(self, offset = 0):
- return False
+ return (offset + 200 >= self.world_map.height * self.world_map.tileheight)
def draw(self, screen, offset = 0):
# cam_offset is for scrolling
@@ -108,8 +108,10 @@ class Track():
return self.numbers_image[(xtile, ytile)]
if (object % 2) == 1:
number = random.randint(0,49) * 2 + 1
+ self.num_odd = self.num_odd + 1
elif (object % 2) == 0:
number = random.randint(0,49) * 2
+ self.num_even = self.num_even + 1
afont = pygame.font.SysFont("droidsans", 44)
text = afont.render(str(number), 1, (255,255,255))
self.numbers_number[(xtile, ytile)] = number
@@ -164,3 +166,10 @@ class Track():
def isGoal(self, tile):
return tile == "goals"
+
+ def number_of_odd(self):
+ return self.num_odd
+
+ def number_of_even(self):
+ return self.num_even
+ \ No newline at end of file