-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathHiScoreScreen.py
More file actions
80 lines (65 loc) · 2.83 KB
/
HiScoreScreen.py
File metadata and controls
80 lines (65 loc) · 2.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import pygame
import json
from operator import itemgetter
from Display import *
from StateHandler import *
class HiScoreScreen:
def __init__(self):
self.font = pygame.font.Font("Resources/Quinquefive-Ea6d4.ttf", 48)
self.score_font = pygame.font.Font(
"Resources/Quinquefive-Ea6d4.ttf", 32)
f = open('hi_scores.json')
scores = json.load(f)
self.hi_scores = sorted(
scores['scores'], key=itemgetter('score'), reverse=True)
self.hi_scores_draw = []
self.hi_scores_pos = []
self.score_name = ['A', 'A', 'A']
self.score_name_pos = 0
self.alphabet = 'abcdefghijklmnopqrstuvwxyz'
self.alphabet_pos = 0
self.current_score_render = self.score_font.render(
('AAA' + " " + str(StateHandler.SCORE)), False, (0, 0, 0))
self.hiscore_title = self.font.render('HI SCORES', False, (0, 0, 0))
f.close()
def update_score(self, score):
pass
def draw(self):
Display.SCREEN.blit(
self.hiscore_title, (Display.WINDOW_SIZE[0]/6, Display.WINDOW_SIZE[1]*0.1))
j = 0
for score in self.hi_scores_draw:
Display.SCREEN.blit(
score, (Display.WINDOW_SIZE[0]/6, Display.WINDOW_SIZE[1]*self.hi_scores_pos[j]))
j += 1
Display.SCREEN.blit(self.current_score_render, (
Display.WINDOW_SIZE[0]/6, Display.WINDOW_SIZE[1]*0.8))
def loop(self, event):
i = 0.3
temp_str = ''
for score in self.hi_scores:
self.hi_scores_draw.append(
self.score_font.render(
score['name'] + " " + str(score['score']), False, (0, 0, 0)))
self.hi_scores_pos.append(i)
i += 0.1
if event.type == pygame.KEYDOWN:
if event.scancode == 79: # Right
self.score_name_pos += 1
self.alphabet_pos = 0
if event.scancode == 82: # Up
self.alphabet_pos += 1
if self.alphabet_pos > len(self.alphabet) - 1:
self.alphabet_pos = 0
self.score_name[self.score_name_pos] = self.alphabet[self.alphabet_pos]
if event.scancode == 81: # Down
self.alphabet_pos -= 1
if self.alphabet_pos < 0:
self.alphabet_pos = len(self.alphabet) - 1
self.score_name[self.score_name_pos] = self.alphabet[self.alphabet_pos]
if event.scancode == 40: # Enter
self.update_score(
{'name': temp_str.join(self.score_name), 'score': 10})
StateHandler.STATE = GameState.STATE_MENU
self.current_score_render = self.score_font.render(
temp_str.join(self.score_name) + " " + str(StateHandler.SCORE), False, (0, 0, 0))