Fixed speeding up. Added 'speed up' message and godmode

This commit is contained in:
2021-03-28 20:32:49 +03:00
parent 01d42cb80e
commit aa187f1339
2 changed files with 60 additions and 6 deletions
+59 -6
View File
@@ -36,8 +36,9 @@ class Drakora():
def addScore(self, score): def addScore(self, score):
self.__score += score self.__score += score
if self.__score%25 == 0: if self.__score%self.speedUpRate == 0:
self.__gameSpeed += 1 self.__gameSpeed += 1
self.speedUpLabelCD = self.targetFps
def newGame(self): def newGame(self):
@@ -55,9 +56,12 @@ class Drakora():
self.__gameSpeed = 2 self.__gameSpeed = 2
self.enemyCD = 0 self.enemyCount = 0
self.enemyCD = self.getNextEnemyCD()
self.enemyChance = 100.0 self.enemyChance = 100.0
self.speedUpLabelCD = 0
def __init__(self): def __init__(self):
self.buttonsPause = (pygame.K_p,) self.buttonsPause = (pygame.K_p,)
@@ -79,6 +83,11 @@ class Drakora():
self.clouds = pygame.sprite.Group() self.clouds = pygame.sprite.Group()
self.player = None self.player = None
self.speedUpRate = 25
self.godmodeCount = 0
self.isGodmode = False
random.seed() random.seed()
pygame.init() pygame.init()
self.screen = pygame.display.set_mode(self.screenSize) self.screen = pygame.display.set_mode(self.screenSize)
@@ -92,6 +101,7 @@ class Drakora():
font = pygame.font.match_font('liberation mono') font = pygame.font.match_font('liberation mono')
self.fontScore = pygame.font.Font(font, 32) self.fontScore = pygame.font.Font(font, 32)
self.fontMessage = pygame.font.Font(font, 56) self.fontMessage = pygame.font.Font(font, 56)
self.fontGodmode = pygame.font.Font(font, 12)
self.newGame() self.newGame()
@@ -123,13 +133,35 @@ class Drakora():
self.renderText('PAUSED', self.renderText('PAUSED',
self.fontMessage, (255, 255, 255), self.fontMessage, (255, 255, 255),
tuple(i/2 for i in self.screenSize)) tuple(i/2 for i in self.screenSize))
elif self.speedUpLabelCD > 0:
self.speedUpLabelCD -= 1
self.renderText('SPEED UP',
self.fontMessage, (255, 255, 255),
tuple(i/2 for i in self.screenSize))
if self.isGodmode:
self.renderText('godmode',
self.fontGodmode, (255, 255, 255),
(self.getScreenWidth()/2,40))
pygame.display.flip() pygame.display.flip()
def getNextEnemyCD(self):
if self.enemyCount <= 5:
return 1000
elif self.enemyCount <= 5:
return 800 - 100*self.enemyCount
elif self.enemyCount%self.speedUpRate == 0:
return 1000
else:
return 300
def collideCheck(self): def collideCheck(self):
if pygame.sprite.spritecollideany(self.player, self.enemies): if pygame.sprite.spritecollideany(self.player, self.enemies):
self.isGameOver = True if not self.isGodmode: self.isGameOver = True
self.player.isOnFloor = False self.player.isOnFloor = False
@@ -174,7 +206,7 @@ class Drakora():
elif event.type == pygame.KEYDOWN: elif event.type == pygame.KEYDOWN:
if event.key in self.buttonsQuit: if event.key in self.buttonsQuit:
return False return False
if event.key in self.buttonsCrouch: elif event.key in self.buttonsCrouch:
self.isDownCrouch = True self.isDownCrouch = True
elif event.key in self.buttonsJump: elif event.key in self.buttonsJump:
self.isDownJump = True self.isDownJump = True
@@ -186,8 +218,28 @@ class Drakora():
elif event.type == pygame.KEYUP: elif event.type == pygame.KEYUP:
if event.key in self.buttonsCrouch: if event.key in self.buttonsCrouch:
self.isDownCrouch = False self.isDownCrouch = False
if event.key in self.buttonsJump: godmodeCount = 0
elif event.key in self.buttonsJump:
self.isDownJump = False self.isDownJump = False
godmodeCount = 0
elif event.key == pygame.K_g:
if self.godmodeCount == 0: self.godmodeCount += 1
else: self.godmodeCount == 0
elif event.key == pygame.K_o:
if (self.godmodeCount == 1 or
self.godmodeCount == 4): self.godmodeCount += 1
else: self.godmodeCount == 0
elif event.key == pygame.K_d:
if (self.godmodeCount == 2 or
self.godmodeCount == 5): self.godmodeCount += 1
else: self.godmodeCount == 0
elif event.key == pygame.K_m:
if self.godmodeCount == 3: self.godmodeCount += 1
else: self.godmodeCount == 0
elif event.key == pygame.K_e:
if self.godmodeCount == 6:
self.godmodeCount == 0
self.isGodmode = not self.isGodmode
if not self.isGameOver and not self.isPaused: if not self.isGameOver and not self.isPaused:
self.sprites.update() self.sprites.update()
@@ -203,7 +255,8 @@ class Drakora():
self.enemyChance += (1/self.targetFps) * self.enemyChance/8 self.enemyChance += (1/self.targetFps) * self.enemyChance/8
if random.randint(1, 150) < self.enemyChance: if random.randint(1, 150) < self.enemyChance:
self.enemyCD = 300 self.enemyCount += 1
self.enemyCD = self.getNextEnemyCD()
self.enemyChance = 1 self.enemyChance = 1
enemy = Enemy(self) enemy = Enemy(self)
self.enemies.add(enemy) self.enemies.add(enemy)
+1
View File
@@ -3,6 +3,7 @@ Enemy entity class
""" """
import pygame
import random import random