From 224ae09705eef80fdfa8ccaadb0da5aba777d35c Mon Sep 17 00:00:00 2001 From: Mateu Batle Date: Wed, 27 Oct 2010 19:47:04 +0000 Subject: 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 --- (limited to 'game1') 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( - _(""" Felicidades\n\nHas conseguido %d puntos""") % self.player.score, + _(""" %s\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 -- cgit v0.9.1