Jump update (step 2)
This commit is contained in:
+47
-2
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user