From f1a7a7b61706fae67c7c0b89c3eb1ffc090a07d3 Mon Sep 17 00:00:00 2001 From: Ruslan Ignatov Date: Fri, 2 Apr 2021 11:45:15 +0300 Subject: [PATCH] Jump update (step 2) --- Drakora.pyw | 49 +++++++++++++++++++++++++++++++++++++++++++++++-- Player.py | 22 +++++++++++++++------- 2 files changed, 62 insertions(+), 9 deletions(-) diff --git a/Drakora.pyw b/Drakora.pyw index 1912296..b15aae7 100644 --- a/Drakora.pyw +++ b/Drakora.pyw @@ -36,11 +36,23 @@ class Drakora(): return self.floorHeight + def speedUp(self): + self.__gameSpeed *= 2 + + + def speedDown(self): + if self.__gameSpeed > 2: self.__gameSpeed /= 2 + + + def speedReset(self): + self.__gameSpeed = 2 + + def addScore(self, score): self.__score += score if self.__score%self.speedUpRate == 0: - self.__gameSpeed += self.__score/self.speedUpRate + self.speedUp() self.speedUpLabelCD = self.targetFps @@ -61,7 +73,7 @@ class Drakora(): self.isGameOver = False self.isPaused = False - self.__gameSpeed = 2 + self.speedReset() self.enemyCount = 0 self.enemyChance = 100.0 @@ -70,6 +82,10 @@ class Drakora(): self.nextEnemyMustBeFlying = False self.enemyCD = self.getNextEnemyCD() + self.speedUpCheatLabelCD = 0 + self.speedDownCheatLabelCD = 0 + self.speedResetCheatLabelCD = 0 + def __init__(self): random.seed() @@ -164,6 +180,24 @@ class Drakora(): self.fontGodmode, (255, 255, 255), (self.getScreenWidth()/2,40)) + if self.speedUpCheatLabelCD: + self.speedUpCheatLabelCD -= 1 + self.renderText('speed up', + self.fontGodmode, (255, 255, 255), + (self.getScreenWidth()/2,60)) + + if self.speedDownCheatLabelCD: + self.speedDownCheatLabelCD -= 1 + self.renderText('speed down', + self.fontGodmode, (255, 255, 255), + (self.getScreenWidth()/2,60)) + + if self.speedResetCheatLabelCD: + self.speedResetCheatLabelCD -= 1 + self.renderText('speed reset', + self.fontGodmode, (255, 255, 255), + (self.getScreenWidth()/2,60)) + pygame.display.flip() @@ -194,8 +228,19 @@ class Drakora(): def doCheats(self): if self.isPressedKeysUpdated: pressedKeysStr = ''.join(self.pressedKeys) + if pressedKeysStr.endswith('godmode'): self.isGodmode = not self.isGodmode + elif pressedKeysStr.endswith('speedup'): + self.speedUp() + self.speedUpCheatLabelCD = 60 + elif pressedKeysStr.endswith('speeddown'): + self.speedDown() + self.speedDownCheatLabelCD = 60 + elif pressedKeysStr.endswith('speedreset'): + self.speedReset() + self.speedResetCheatLabelCD = 60 + self.isPressedKeysUpdated = False diff --git a/Player.py b/Player.py index 87d5de7..c7016f8 100644 --- a/Player.py +++ b/Player.py @@ -58,9 +58,6 @@ class Player(pygame.sprite.Sprite): def update(self): if not self.speed: self.rect.y += 1 - self.speed += 0.07 * self.gameSpeed - self.rect.y += self.speed - if not self.isDownJump: self.hoverCount = 0 @@ -81,10 +78,21 @@ class Player(pygame.sprite.Sprite): self.standup() if self.isJumping: - maxHoverCount = 30 - if self.isDownJump and self.hoverCount < maxHoverCount: - self.speed -= self.gameSpeed/10 * (math.sin(2*math.pi*self.hoverCount/(2*maxHoverCount)+math.pi/2)+1)/2.5+0.2 - self.hoverCount += 1 +# maxHoverCount = 30 + if self.gameSpeed <= 2: maxHoverCount = 30 + elif self.gameSpeed <= 4: maxHoverCount = 23 + elif self.gameSpeed <= 8: maxHoverCount = 16 + elif self.gameSpeed <= 16: maxHoverCount = 9 + elif self.gameSpeed <= 32: maxHoverCount = 5 + elif self.gameSpeed <= 64: maxHoverCount = 2 + else: maxHoverCount = 1 + if self.isDownJump and self.hoverCount < maxHoverCount: + self.speed -= self.gameSpeed/8 * ((math.cos(2*math.pi*self.hoverCount/(2*maxHoverCount))+1)/2.5+0.2) + self.hoverCount += 1 else: self.isJumping = False + else: + self.speed += 0.07 * self.gameSpeed + + self.rect.y += self.speed