Reworked load()
This commit is contained in:
+49
-46
@@ -1,7 +1,8 @@
|
|||||||
"""
|
"""
|
||||||
Enemy entity class
|
Endscreen class
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
import pickle
|
import pickle
|
||||||
import pygame
|
import pygame
|
||||||
|
|
||||||
@@ -26,6 +27,16 @@ class EndSceen():
|
|||||||
self.saveFileName = 'leaders.lb'
|
self.saveFileName = 'leaders.lb'
|
||||||
|
|
||||||
|
|
||||||
|
def getScorePosition(self, score):
|
||||||
|
counter = 1
|
||||||
|
for i in self.sortedDataByScores:
|
||||||
|
if i[1][1] < score:
|
||||||
|
return counter
|
||||||
|
else:
|
||||||
|
counter += 1
|
||||||
|
return counter
|
||||||
|
|
||||||
|
|
||||||
def newEndScreen(self):
|
def newEndScreen(self):
|
||||||
self.endScreenTimer = 0;
|
self.endScreenTimer = 0;
|
||||||
self.playerName = 'Player'
|
self.playerName = 'Player'
|
||||||
@@ -36,25 +47,51 @@ class EndSceen():
|
|||||||
|
|
||||||
self.isBackButton = True
|
self.isBackButton = True
|
||||||
|
|
||||||
try:
|
self.loadResults()
|
||||||
fileWithData = open(self.saveFileName, 'rb')
|
|
||||||
except IOError as e:
|
|
||||||
pass
|
|
||||||
else:
|
|
||||||
listPlayers = pickle.load(fileWithData)
|
|
||||||
|
|
||||||
for line in listPlayers:
|
|
||||||
if (len(line) == 3):
|
def loadResults(self):
|
||||||
self.data.append (
|
with open(self.saveFileName, 'rb') as file:
|
||||||
[line[0][:10], int(line[1]), float(line[2])]
|
for line in file:
|
||||||
|
try:
|
||||||
|
name, score, time = with line.split()
|
||||||
|
self.data.append(
|
||||||
|
[name[:10].decode('ascii'), int(score), float(time)]
|
||||||
)
|
)
|
||||||
|
except Exception:
|
||||||
|
continue
|
||||||
|
|
||||||
fileWithData.close()
|
file.close()
|
||||||
|
|
||||||
self.sortedDataByScores = sorted(enumerate(self.data),
|
self.sortedDataByScores = sorted(enumerate(self.data),
|
||||||
key=lambda i: i[1][1], reverse=True)
|
key=lambda i: i[1][1], reverse=True)
|
||||||
|
|
||||||
|
|
||||||
|
def saveResults(self):
|
||||||
|
newData = []
|
||||||
|
|
||||||
|
# try:
|
||||||
|
# fileWithData = open(self.saveFileName, 'rb')
|
||||||
|
# except IOError as e:
|
||||||
|
# pass
|
||||||
|
# else:
|
||||||
|
# tmpData = pickle.load(fileWithData)
|
||||||
|
# fileWithData.close()
|
||||||
|
#
|
||||||
|
# for line in tmpData:
|
||||||
|
# if len(line.split()) == 3:
|
||||||
|
# if not (line.split()[0].rstrip() == self.playerName.rstrip()):
|
||||||
|
# newData.append(line)
|
||||||
|
#
|
||||||
|
# newData.append(('{0} {1} {2:.2f}\n'.format(self.playerName,
|
||||||
|
# self.game.getScore(), self.game.getTime())))
|
||||||
|
#
|
||||||
|
# with open (self.saveFileName, 'wb') as fileWithData:
|
||||||
|
# pickle.dump(newData, fileWithData)
|
||||||
|
#
|
||||||
|
# fileWithData.close()
|
||||||
|
|
||||||
|
|
||||||
def renderText(self, text, font, color, center, backColor=None):
|
def renderText(self, text, font, color, center, backColor=None):
|
||||||
render = font.render(text, True, color, backColor)
|
render = font.render(text, True, color, backColor)
|
||||||
rect = render.get_rect()
|
rect = render.get_rect()
|
||||||
@@ -108,16 +145,6 @@ class EndSceen():
|
|||||||
(self.game.getScreenWidth()/2,100 + (number + 1)*50))
|
(self.game.getScreenWidth()/2,100 + (number + 1)*50))
|
||||||
|
|
||||||
|
|
||||||
def getScorePosition(self, score):
|
|
||||||
counter = 1
|
|
||||||
for i in self.sortedDataByScores:
|
|
||||||
if i[1][1] < score:
|
|
||||||
return counter
|
|
||||||
else:
|
|
||||||
counter += 1
|
|
||||||
return counter
|
|
||||||
|
|
||||||
|
|
||||||
def render(self):
|
def render(self):
|
||||||
backGround = pygame.Surface(self.game.screenSize, pygame.SRCALPHA)
|
backGround = pygame.Surface(self.game.screenSize, pygame.SRCALPHA)
|
||||||
backGround.fill((0,0,0,200))
|
backGround.fill((0,0,0,200))
|
||||||
@@ -206,27 +233,3 @@ class EndSceen():
|
|||||||
self.playerName += pygame.key.name(event.key).upper()
|
self.playerName += pygame.key.name(event.key).upper()
|
||||||
else:
|
else:
|
||||||
self.playerName += pygame.key.name(event.key).lower()
|
self.playerName += pygame.key.name(event.key).lower()
|
||||||
|
|
||||||
|
|
||||||
def saveResults(self):
|
|
||||||
newData = []
|
|
||||||
|
|
||||||
try:
|
|
||||||
fileWithData = open(self.saveFileName, 'rb')
|
|
||||||
except IOError as e:
|
|
||||||
pass
|
|
||||||
else:
|
|
||||||
tmpData = pickle.load(fileWithData)
|
|
||||||
fileWithData.close()
|
|
||||||
|
|
||||||
for line in tmpData:
|
|
||||||
if len(line.split()) == 3:
|
|
||||||
if not (line.split()[0].rstrip() == self.playerName.rstrip()):
|
|
||||||
newData.append(line)
|
|
||||||
|
|
||||||
newData.append(('{0} {1} {2:.2f}\n'.format(self.playerName,
|
|
||||||
self.game.getScore(), self.game.getTime())))
|
|
||||||
|
|
||||||
with open (self.saveFileName, 'wb') as fileWithData:
|
|
||||||
pickle.dump(newData, fileWithData)
|
|
||||||
fileWithData.close()
|
|
||||||
|
|||||||
BIN
Binary file not shown.
Reference in New Issue
Block a user