Updated cloud system

This commit is contained in:
2021-03-29 20:08:22 +03:00
parent 2b1b3c182b
commit 08bd3e9517
2 changed files with 33 additions and 24 deletions
+9 -6
View File
@@ -8,19 +8,22 @@ import random
class Cloud(pygame.sprite.Sprite): class Cloud(pygame.sprite.Sprite):
def __init__(self, mainGameClass): def __init__(self, mainGameClass, cloudType):
pygame.sprite.Sprite.__init__(self) pygame.sprite.Sprite.__init__(self)
self.image = pygame.Surface((random.randint(150, 350), self.image = pygame.Surface((random.randint(150, 350),
random.randint(50, 150))) random.randint(50, 150)))
self.image.fill((random.randint(235, 255),
random.randint(235, 255), color = 255 - 15 * (3-cloudType)
random.randint(235, 255))) self.image.fill((color, color, color))
self.rect = self.image.get_rect() self.rect = self.image.get_rect()
self.rect.center = (mainGameClass.getScreenWidth() + self.rect.width, self.rect.center = (mainGameClass.getScreenWidth() + self.rect.width,
mainGameClass.getScreenHeight()/2 - mainGameClass.getScreenHeight()/2 -
random.randint(100, random.randint(100,
mainGameClass.getScreenHeight()/2-100)) mainGameClass.getScreenHeight()/2-100)+50*(2-cloudType))
self.speed = random.randint(1, 3)*mainGameClass.getGameSpeed() / 6 self.speed = cloudType*mainGameClass.getGameSpeed() / 6
self.__doubleX = float(self.rect.x) self.__doubleX = float(self.rect.x)
+24 -18
View File
@@ -51,7 +51,7 @@ class Drakora():
if self.player: self.player.kill() if self.player: self.player.kill()
self.player = Player() self.player = Player()
self.sprites.add(self.player) self.players.add(self.player)
self.__score = 0 self.__score = 0
self.isGameOver = False self.isGameOver = False
@@ -68,34 +68,36 @@ class Drakora():
def __init__(self): def __init__(self):
random.seed()
pygame.init()
self.screenSize = (800, 600)
self.screen = pygame.display.set_mode(self.screenSize)
pygame.display.set_caption('Drakora')
self.clock = pygame.time.Clock()
self.buttonsPause = (pygame.K_p,) self.buttonsPause = (pygame.K_p,)
self.buttonsQuit = (pygame.K_F10,) self.buttonsQuit = (pygame.K_F10,)
self.buttonsNewGame = (pygame.K_RETURN,) self.buttonsNewGame = (pygame.K_RETURN,)
self.screenSize = (800, 600)
self.targetFps = 120 self.targetFps = 120
self.floorHeight = 50 self.floorHeight = 50
self.players = pygame.sprite.Group()
self.floors = pygame.sprite.Group() self.floors = pygame.sprite.Group()
self.enemies = pygame.sprite.Group() self.enemies = pygame.sprite.Group()
self.clouds = pygame.sprite.Group() self.cloudGroups = (pygame.sprite.Group(),
pygame.sprite.Group(),
pygame.sprite.Group(),)
self.player = None self.player = None
self.floors.add(Floor(self))
self.speedUpRate = 25 self.speedUpRate = 25
self.godmodeCount = 0 self.godmodeCount = 0
self.isGodmode = False self.isGodmode = False
random.seed()
pygame.init()
self.screen = pygame.display.set_mode(self.screenSize)
pygame.display.set_caption('Drakora')
self.clock = pygame.time.Clock()
self.sprites = pygame.sprite.Group()
self.floors.add(Floor(self))
self.sprites.add(self.floors)
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)
@@ -130,7 +132,9 @@ class Drakora():
def render(self): def render(self):
self.screen.fill((102, 153, 255)) self.screen.fill((102, 153, 255))
self.sprites.draw(self.screen) for cloudGroup in self.cloudGroups: cloudGroup.draw(self.screen)
self.enemies.draw(self.screen)
self.players.draw(self.screen)
self.floors.draw(self.screen) self.floors.draw(self.screen)
self.renderText('%d'%(self.__score), self.renderText('%d'%(self.__score),
@@ -216,14 +220,17 @@ class Drakora():
self.doCheats() self.doCheats()
if not self.isGameOver and not self.isPaused: if not self.isGameOver and not self.isPaused:
self.sprites.update() for cloudGroup in self.cloudGroups: cloudGroup.update()
self.enemies.update()
self.players.update()
self.floors.update()
self.enemyCD -= self.__gameSpeed self.enemyCD -= self.__gameSpeed
if random.randint(1, 200) == 1: if random.randint(1, 200) == 1:
cloud = Cloud(self) cloudType = random.randint(0, 2)
self.clouds.add(cloud) cloud = Cloud(self, cloudType)
self.sprites.add(cloud) self.cloudGroups[cloudType].add(cloud)
if self.enemyCD <= 0: if self.enemyCD <= 0:
self.enemyChance += (1/self.targetFps) * self.enemyChance/8 self.enemyChance += (1/self.targetFps) * self.enemyChance/8
@@ -252,7 +259,6 @@ class Drakora():
self.enemyCD = self.getNextEnemyCD() self.enemyCD = self.getNextEnemyCD()
self.enemies.add(enemy) self.enemies.add(enemy)
self.sprites.add(enemy)
self.collideCheck() self.collideCheck()