write
This commit is contained in:
parent
484257028e
commit
935f87a89b
|
@ -1,6 +1,7 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from random import randint, randrange, choice
|
from random import randint, randrange, choice
|
||||||
|
from time import time
|
||||||
|
|
||||||
from pygame import Surface, PixelArray, Rect
|
from pygame import Surface, PixelArray, Rect
|
||||||
from pygame.draw import aalines, polygon
|
from pygame.draw import aalines, polygon
|
||||||
|
@ -171,7 +172,9 @@ class Scoreboard(GameChild, Surface):
|
||||||
def __init__(self, parent):
|
def __init__(self, parent):
|
||||||
GameChild.__init__(self, parent)
|
GameChild.__init__(self, parent)
|
||||||
Surface.__init__(self, (380, 80))
|
Surface.__init__(self, (380, 80))
|
||||||
|
self.scores_path = self.get_resource("score", "path")
|
||||||
self.display_surface = self.get_display_surface()
|
self.display_surface = self.get_display_surface()
|
||||||
|
self.most_recent_score = None
|
||||||
self.fill((255, 255, 255))
|
self.fill((255, 255, 255))
|
||||||
self.rect = self.get_rect()
|
self.rect = self.get_rect()
|
||||||
self.rect.center = self.display_surface.get_rect().centerx, 350
|
self.rect.center = self.display_surface.get_rect().centerx, 350
|
||||||
|
@ -179,7 +182,7 @@ class Scoreboard(GameChild, Surface):
|
||||||
|
|
||||||
def load(self):
|
def load(self):
|
||||||
scores = []
|
scores = []
|
||||||
for line in file(self.get_resource("score", "path"), "r"):
|
for line in file(self.scores_path, "r"):
|
||||||
fields = line.split()
|
fields = line.split()
|
||||||
scores.append((float(fields[0]), int(fields[1])))
|
scores.append((float(fields[0]), int(fields[1])))
|
||||||
self.sprites = sprites = []
|
self.sprites = sprites = []
|
||||||
|
@ -188,17 +191,30 @@ class Scoreboard(GameChild, Surface):
|
||||||
for ii, score in enumerate(sorted(scores, key=lambda score: score[1],
|
for ii, score in enumerate(sorted(scores, key=lambda score: score[1],
|
||||||
reverse=True)[:3]):
|
reverse=True)[:3]):
|
||||||
font = Font(font_path, [40, 24, 16][ii])
|
font = Font(font_path, [40, 24, 16][ii])
|
||||||
sprites.append(Sprite(self))
|
sprites.append(Sprite(self, 250))
|
||||||
sprites[ii].add_frame(font.render(str(score[1]) + "¥", True, (0, 0, 0),
|
text = str(score[1]) + "¥"
|
||||||
|
color = (0, 0, 0) if not (score[1] == self.most_recent_score) else \
|
||||||
|
(255, 255, 255)
|
||||||
|
sprites[ii].add_frame(font.render(text, True, color,
|
||||||
(255, 255, 255)))
|
(255, 255, 255)))
|
||||||
|
if score[1] == self.most_recent_score:
|
||||||
|
sprites[ii].add_frame(font.render(text, True, (0, 255, 0),
|
||||||
|
(255, 255, 255)))
|
||||||
sprites[ii].location.midtop = self.rect.w / 2, y
|
sprites[ii].location.midtop = self.rect.w / 2, y
|
||||||
y += sprites[ii].location.h
|
y += sprites[ii].location.h
|
||||||
sprites[ii].display_surface = self
|
sprites[ii].display_surface = self
|
||||||
|
|
||||||
|
def write(self):
|
||||||
|
score = int(round(self.get_game().triangles.score))
|
||||||
|
file(self.scores_path, "a").write(str(time()) + " " + str(score) + "\n")
|
||||||
|
self.most_recent_score = score
|
||||||
|
self.load()
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
self.display_surface.blit(self, self.rect)
|
self.fill((255, 255, 255))
|
||||||
for sprite in self.sprites:
|
for sprite in self.sprites:
|
||||||
sprite.update()
|
sprite.update()
|
||||||
|
self.display_surface.blit(self, self.rect)
|
||||||
|
|
||||||
|
|
||||||
class Sieve(Strip):
|
class Sieve(Strip):
|
||||||
|
@ -463,6 +479,7 @@ class Static(Sprite):
|
||||||
def respond(self, event):
|
def respond(self, event):
|
||||||
if self.active and self.complete:
|
if self.active and self.complete:
|
||||||
if self.delegate.compare(event, "advance"):
|
if self.delegate.compare(event, "advance"):
|
||||||
|
self.parent.title.scoreboard.write()
|
||||||
self.total.deactivate()
|
self.total.deactivate()
|
||||||
self.deactivate()
|
self.deactivate()
|
||||||
self.reset()
|
self.reset()
|
||||||
|
|
Loading…
Reference in New Issue