New records load system
This commit is contained in:
+2
-6
@@ -221,10 +221,6 @@ class Drakora():
|
|||||||
self.fontGodmode, (255, 255, 255),
|
self.fontGodmode, (255, 255, 255),
|
||||||
(self.getScreenWidth()/2,60))
|
(self.getScreenWidth()/2,60))
|
||||||
|
|
||||||
self.renderText('%f'%self.player.speed,
|
|
||||||
self.fontGodmode, (255, 255, 255),
|
|
||||||
(self.getScreenWidth()/2,60))
|
|
||||||
|
|
||||||
pygame.display.flip()
|
pygame.display.flip()
|
||||||
|
|
||||||
|
|
||||||
@@ -240,6 +236,7 @@ class Drakora():
|
|||||||
else:
|
else:
|
||||||
return 300
|
return 300
|
||||||
|
|
||||||
|
|
||||||
def collideCheck(self):
|
def collideCheck(self):
|
||||||
for enemy in self.enemies:
|
for enemy in self.enemies:
|
||||||
if pygame.sprite.groupcollide(self.player.getCollisionBoxes(), enemy.getCollisionBoxes(), None, None):
|
if pygame.sprite.groupcollide(self.player.getCollisionBoxes(), enemy.getCollisionBoxes(), None, None):
|
||||||
@@ -249,10 +246,9 @@ class Drakora():
|
|||||||
|
|
||||||
if self.player.isOnFloor:
|
if self.player.isOnFloor:
|
||||||
self.player.rect.y += 1
|
self.player.rect.y += 1
|
||||||
|
|
||||||
if not pygame.sprite.spritecollideany(self.player, self.floors):
|
if not pygame.sprite.spritecollideany(self.player, self.floors):
|
||||||
self.player.isOnFloor = False
|
self.player.isOnFloor = False
|
||||||
self.player.rect.y -= 1
|
self.player.rect.y -= 1
|
||||||
else:
|
else:
|
||||||
if pygame.sprite.spritecollideany(self.player, self.floors):
|
if pygame.sprite.spritecollideany(self.player, self.floors):
|
||||||
self.player.isOnFloor = True
|
self.player.isOnFloor = True
|
||||||
|
|||||||
+26
-21
@@ -55,44 +55,49 @@ class EndSceen():
|
|||||||
def getResultsFromFile(self):
|
def getResultsFromFile(self):
|
||||||
data = []
|
data = []
|
||||||
|
|
||||||
with open(self.saveFileName, 'rb') as file:
|
try:
|
||||||
for line in file:
|
with open(self.saveFileName, 'rb') as file:
|
||||||
try:
|
fileData = self.shiftRight(file.read()).decode('utf-8')
|
||||||
line = self.shiftRight(line).decode('ascii')
|
for line in fileData.split('\n'):
|
||||||
name, score, time = line.split()
|
name, score, time = line.split('\t')
|
||||||
data.append(
|
data.append(
|
||||||
[name[:10], int(score), float(time)]
|
[name[:10], int(score), float(time)]
|
||||||
)
|
)
|
||||||
except Exception:
|
except Exception:
|
||||||
continue
|
pass
|
||||||
|
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
|
||||||
def saveResults(self):
|
def saveResults(self):
|
||||||
data = self.getResultsFromFile()
|
data = self.getResultsFromFile()
|
||||||
|
|
||||||
# data.append(('{0} {1} {2:.2f}\n'.format(self.playerName,
|
|
||||||
# self.game.getScore(), self.game.getTime())))
|
|
||||||
|
|
||||||
data.append(
|
data.append(
|
||||||
[self.playerName[:10],
|
[self.playerName[:10],
|
||||||
int(self.game.getScore()),
|
int(self.game.getScore()),
|
||||||
float(self.game.getTime())]
|
float(self.game.getTime())]
|
||||||
)
|
)
|
||||||
|
|
||||||
with open(self.saveFileName, 'wb') as file:
|
try:
|
||||||
for entry in data:
|
with open(self.saveFileName, 'wb') as file:
|
||||||
string = '{} {} {}\n'.format(*entry)
|
for entry in data:
|
||||||
arr = string.encode('ascii')
|
string = '{}\t{}\t{}\n'.format(*entry)
|
||||||
file.write(self.shiftLeft(arr))
|
arr = string.encode('utf-8')
|
||||||
|
file.write(self.shiftLeft(arr))
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def shift(self, c, offset):
|
||||||
|
return (c + offset)%0x100
|
||||||
|
|
||||||
|
|
||||||
def shiftLeft(self, arr):
|
def shiftLeft(self, arr):
|
||||||
return bytearray([x if x == 10 else x-32 for x in arr])
|
return bytearray([self.shift(x, -77) for x in arr])
|
||||||
|
|
||||||
|
|
||||||
def shiftRight(self, arr):
|
def shiftRight(self, arr):
|
||||||
return bytearray([x if x == 10 else x+32 for x in arr])
|
return bytearray([self.shift(x, +77) for x in arr])
|
||||||
|
|
||||||
|
|
||||||
def renderText(self, text, font, color, center, backColor=None):
|
def renderText(self, text, font, color, center, backColor=None):
|
||||||
@@ -190,7 +195,7 @@ class EndSceen():
|
|||||||
),
|
),
|
||||||
self.fontLeaderBoard, (255, 255, 255),
|
self.fontLeaderBoard, (255, 255, 255),
|
||||||
(self.game.getScreenWidth()/2, 100 +
|
(self.game.getScreenWidth()/2, 100 +
|
||||||
(5 + 2)*50), (200, 20, 20))
|
(5 + 2)*50), (208, 85, 52))
|
||||||
|
|
||||||
self.renderText(' {0:^30} '.format('Missing player name'),
|
self.renderText(' {0:^30} '.format('Missing player name'),
|
||||||
self.fontError, (255, 255, 255),
|
self.fontError, (255, 255, 255),
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ class Player(pygame.sprite.Sprite):
|
|||||||
self.collisionBoxes.add(CollisionBox(-10, 5, 30, 20, self.rect.center))
|
self.collisionBoxes.add(CollisionBox(-10, 5, 30, 20, self.rect.center))
|
||||||
self.collisionBoxes.add(CollisionBox(0, 35, 25, 40, self.rect.center))
|
self.collisionBoxes.add(CollisionBox(0, 35, 25, 40, self.rect.center))
|
||||||
|
|
||||||
self.__doubleY = float(self.rect.x)
|
self.__doubleY = float(self.rect.y)
|
||||||
|
|
||||||
|
|
||||||
def getCollisionBoxes(self):
|
def getCollisionBoxes(self):
|
||||||
@@ -168,18 +168,18 @@ class Player(pygame.sprite.Sprite):
|
|||||||
gameSpeed = self.mainGameClass.getGameSpeed()
|
gameSpeed = self.mainGameClass.getGameSpeed()
|
||||||
|
|
||||||
if self.isJumping:
|
if self.isJumping:
|
||||||
if gameSpeed <= 2: maxHoverCount = 30
|
if gameSpeed <= 2: maxHoverCount = 40
|
||||||
elif gameSpeed <= 4: maxHoverCount = 23
|
elif gameSpeed <= 4: maxHoverCount = 29
|
||||||
elif gameSpeed <= 8: maxHoverCount = 16
|
elif gameSpeed <= 8: maxHoverCount = 20
|
||||||
elif gameSpeed <= 16: maxHoverCount = 9
|
elif gameSpeed <= 16: maxHoverCount = 9
|
||||||
elif gameSpeed <= 32: maxHoverCount = 5
|
elif gameSpeed <= 32: maxHoverCount = 5
|
||||||
elif gameSpeed <= 64: maxHoverCount = 2
|
elif gameSpeed <= 64: maxHoverCount = 2
|
||||||
else: maxHoverCount = 1
|
else: maxHoverCount = 1
|
||||||
|
|
||||||
if self.isDownJump and self.hoverCount < maxHoverCount:
|
if self.isDownJump and self.hoverCount < maxHoverCount:
|
||||||
self.speed -= gameSpeed/8 * (
|
self.speed -= gameSpeed/8 * (
|
||||||
(math.cos(2*math.pi*self.hoverCount/
|
(math.cos(2*math.pi*self.hoverCount/(2*maxHoverCount))
|
||||||
(2*maxHoverCount))+1)/2.5 + 0.2
|
+ 1)/2.5 + 0.2
|
||||||
)
|
)
|
||||||
self.hoverCount += 1
|
self.hoverCount += 1
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
Player1 1 10
|
|
||||||
Player2 2 20
|
|
||||||
Player3 3 30
|
|
||||||
Reference in New Issue
Block a user