diff --git a/Cloud.py b/Cloud.py index a532a2d..b327d3f 100644 --- a/Cloud.py +++ b/Cloud.py @@ -8,19 +8,22 @@ import random class Cloud(pygame.sprite.Sprite): - def __init__(self, mainGameClass): + def __init__(self, mainGameClass, cloudType): pygame.sprite.Sprite.__init__(self) self.image = pygame.Surface((random.randint(150, 350), random.randint(50, 150))) - self.image.fill((random.randint(235, 255), - random.randint(235, 255), - random.randint(235, 255))) + + color = 255 - 15 * (3-cloudType) + self.image.fill((color, color, color)) + self.rect = self.image.get_rect() self.rect.center = (mainGameClass.getScreenWidth() + self.rect.width, mainGameClass.getScreenHeight()/2 - random.randint(100, - mainGameClass.getScreenHeight()/2-100)) - self.speed = random.randint(1, 3)*mainGameClass.getGameSpeed() / 6 + mainGameClass.getScreenHeight()/2-100)+50*(2-cloudType)) + self.speed = cloudType*mainGameClass.getGameSpeed() / 6 + + self.__doubleX = float(self.rect.x) diff --git a/Drakora.pyw b/Drakora.pyw index 1e4ae6b..0275f47 100644 --- a/Drakora.pyw +++ b/Drakora.pyw @@ -51,7 +51,7 @@ class Drakora(): if self.player: self.player.kill() self.player = Player() - self.sprites.add(self.player) + self.players.add(self.player) self.__score = 0 self.isGameOver = False @@ -68,34 +68,36 @@ class Drakora(): 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.buttonsQuit = (pygame.K_F10,) self.buttonsNewGame = (pygame.K_RETURN,) - self.screenSize = (800, 600) self.targetFps = 120 self.floorHeight = 50 + self.players = pygame.sprite.Group() self.floors = 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.floors.add(Floor(self)) + self.speedUpRate = 25 self.godmodeCount = 0 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') self.fontScore = pygame.font.Font(font, 32) @@ -130,7 +132,9 @@ class Drakora(): def render(self): 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.renderText('%d'%(self.__score), @@ -216,14 +220,17 @@ class Drakora(): self.doCheats() 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 if random.randint(1, 200) == 1: - cloud = Cloud(self) - self.clouds.add(cloud) - self.sprites.add(cloud) + cloudType = random.randint(0, 2) + cloud = Cloud(self, cloudType) + self.cloudGroups[cloudType].add(cloud) if self.enemyCD <= 0: self.enemyChance += (1/self.targetFps) * self.enemyChance/8 @@ -252,7 +259,6 @@ class Drakora(): self.enemyCD = self.getNextEnemyCD() self.enemies.add(enemy) - self.sprites.add(enemy) self.collideCheck()