From feefe9f9c09ddde323e405bc74603dcf79777343 Mon Sep 17 00:00:00 2001 From: Ruslan Ignatov Date: Sat, 3 Apr 2021 21:24:55 +0300 Subject: [PATCH] Flying enemy sprites --- Drakora.pyw | 1 + FlyingEnemy.py | 34 +++++++++++++++++++++++++++++++--- Player.py | 5 ++--- data/fenemy.png | Bin 0 -> 282 bytes data/fenemy.xcf | Bin 0 -> 1328 bytes 5 files changed, 34 insertions(+), 6 deletions(-) create mode 100644 data/fenemy.png create mode 100644 data/fenemy.xcf diff --git a/Drakora.pyw b/Drakora.pyw index 6c8a901..fd3da15 100644 --- a/Drakora.pyw +++ b/Drakora.pyw @@ -80,6 +80,7 @@ class Drakora(): self.speedUpLabelCD = 0 self.nextEnemyMustBeFlying = False + self.enemyCD = self.getNextEnemyCD() self.speedUpCheatLabelCD = 0 diff --git a/FlyingEnemy.py b/FlyingEnemy.py index d78ae23..990ff70 100644 --- a/FlyingEnemy.py +++ b/FlyingEnemy.py @@ -5,17 +5,33 @@ Flying enemy entity class import pygame import random +import math +import os + from Enemy import Enemy class FlyingEnemy(Enemy): + imgDir = os.path.join(os.path.dirname(__file__), 'data') + senemyImage = pygame.image.load(os.path.join(imgDir, 'fenemy.png'))#.convert() + images = ( + pygame.transform.scale(senemyImage.subsurface((0, 0, 16, 8)), (64, 32)), + pygame.transform.scale(senemyImage.subsurface((16, 0, 16, 8)), (64, 32)), + pygame.transform.scale(senemyImage.subsurface((32, 0, 16, 8)), (64, 32)), + ) + for image in images: + image.set_colorkey((255,0,255)) + def __init__(self, mainGameClass): Enemy.__init__(self, mainGameClass) - self.subtype = random.randint(1, 7) + self.updateCount = 0 + self.currentImage = 0 + + self.subtype = random.randint(1, 10) + + self.image = FlyingEnemy.images[self.currentImage] - self.image = pygame.Surface((50, 25)) - self.image.fill((51, 51, 0)) self.rect = self.image.get_rect() self.height -= self.rect.height/2 + 10 + 10*self.subtype @@ -23,3 +39,15 @@ class FlyingEnemy(Enemy): self.height) self.speed = self.thisGame.getGameSpeed()*2 + + + def update(self): + super().update() + + self.updateCount += 1 + if self.updateCount >= 22 - math.log2(self.thisGame.getGameSpeed()) * 2: + self.currentImage += 1 + if self.currentImage >= len(FlyingEnemy.images): + self.currentImage = 0 + self.image = FlyingEnemy.images[self.currentImage] + self.updateCount = 0 diff --git a/Player.py b/Player.py index b096305..ee06e49 100644 --- a/Player.py +++ b/Player.py @@ -94,7 +94,7 @@ class Player(pygame.sprite.Sprite): def update(self): - if not self.speed: self.rect.y += 1 + self.updateCount += 1 if not self.isDownJump: self.hoverCount = 0 @@ -134,8 +134,7 @@ class Player(pygame.sprite.Sprite): self.rect.y += self.speed - self.updateCount += 1 - if self.updateCount == 22 - math.log2(self.gameSpeed) * 2: + if self.updateCount >= 22 - math.log2(self.gameSpeed) * 2: if self.isOnFloor: if self.isCrouching: self.currentCrouchImage += 1 diff --git a/data/fenemy.png b/data/fenemy.png new file mode 100644 index 0000000000000000000000000000000000000000..74769f228e5febbf4b64c5dab80e72b0fe42dafe GIT binary patch literal 282 zcmeAS@N?(olHy`uVBq!ia0y~yU@%}{VBp|j0H=O_NOe&LZVEo3vbS3U|^6eag8W(&d<$F%`0JWE=o--Nlj5G&n(GMaQE~L z2yf&QXJBBM;_2cTVsZNHt8`X6MR#&-z5D#;+NU34KZGp` inDIRDbk6;MObs6%zdmz~JfX=d#Wzp$PzRZ)zm~ literal 0 HcmV?d00001 diff --git a/data/fenemy.xcf b/data/fenemy.xcf new file mode 100644 index 0000000000000000000000000000000000000000..10fa16950ac474156c4de15cf6af5b7b4ce91478 GIT binary patch literal 1328 zcmYe#%q>u;NKR8IGcYt{U|?V{U|?Y205KRC7^X2WFbFa*FfcMQFfa%)FffRK6fl8Q zfJ78PECCQ93=(pl#=ro=P<1Q}3=FLd3=Con3=AMPNQWo`1EV_w0|PI}THWOQ+}zZ> z5|CveNg?N=)Wnk16ovB4k_-iRPu~ELi~v|^W^Q77s&0BwW(r7*k%57cL8G{&GAC7` zI6o&dMUzV-Ej>9uC%;HR15D`_r6(mS80Z;*0TzZKR7z8mOCt%3R+zj3ZU#teMR7r5 za%Nt-f+5TRfr05IlmVh(!NCmTFfcH)LTE4vlVf0DV3q}oFfcF}{%2=khhnz>e;G{w zGn@WqIQRemIc6yDAHzB3|G&=t{|}b?%W&=-%m4ojY^ER<)BnHcKx~K(Ca^eI{qJ)i zB*BFfg#0{$>CvXJ%kC z1*`oXzyNm6KL$f4m`0FG4Fi}N{se%f{xBFa1h6vvg*p_81J%R~l>=D^vOOM0up0mW zZ;S|5W9I+AjN!p*YzzxlV`HZOe~lr*3eo`!R%7P>zl~wRYRm-F405coG4uaF#!$x^ d|2IYoR%G5k24klG|BaD?6{PX6@qd(H1puxOShxTH literal 0 HcmV?d00001