From 4f73f51b85d4d85a1269429b5fe2bd0d2fb41de1 Mon Sep 17 00:00:00 2001 From: mx0c Date: Mon, 2 Nov 2020 16:21:42 +0100 Subject: [PATCH] added sfx when big mario is damaged and fixed 2 bugs --- classes/Sound.py | 1 + entities/Koopa.py | 29 ----------------------------- entities/Mario.py | 3 ++- entities/Mushroom.py | 11 +---------- sfx/pipe.ogg | Bin 0 -> 10529 bytes 5 files changed, 4 insertions(+), 40 deletions(-) create mode 100644 sfx/pipe.ogg diff --git a/classes/Sound.py b/classes/Sound.py index 1bf7d260..3affb798 100644 --- a/classes/Sound.py +++ b/classes/Sound.py @@ -20,6 +20,7 @@ def __init__(self): self.brick_bump = mixer.Sound("./sfx/brick-bump.ogg") self.powerup = mixer.Sound('./sfx/powerup.ogg') self.powerup_appear = mixer.Sound('./sfx/powerup_appears.ogg') + self.pipe = mixer.Sound('./sfx/pipe.ogg') def play_sfx(self, sfx): if self.allowSFX: diff --git a/entities/Koopa.py b/entities/Koopa.py index 3e05b252..387739b1 100644 --- a/entities/Koopa.py +++ b/entities/Koopa.py @@ -38,8 +38,6 @@ def update(self, camera): self.checkEntityCollision() elif self.alive == "shellBouncing": self.shellBouncing(camera) - elif self.alive is False: - self.die(camera) def drawKoopa(self, camera): if self.leftrightTrait.direction == -1: @@ -59,33 +57,6 @@ def shellBouncing(self, camera): self.drawKoopa(camera) self.leftrightTrait.update() - def die(self, camera): - if self.timer == 0: - self.textPos = Vec2D(self.rect.x + 3, self.rect.y - 32) - if self.timer < self.timeAfterDeath: - self.textPos.y += -0.5 - self.textPos = Vec2D(self.rect.x + 3, self.rect.y - 32) - self.dashboard.drawText("100", self.textPos.x + camera.x, self.textPos.y, 8) - self.vel.y -= 0.5 - self.rect.y += self.vel.y - self.screen.blit( - self.spriteCollection.get("koopa-hiding").image, - (self.rect.x + camera.x, self.rect.y - 32), - ) - else: - self.vel.y += 0.3 - self.rect.y += self.vel.y - self.textPos.y += -0.5 - self.dashboard.drawText("100", self.textPos.x + camera.x, self.textPos.y, 8) - self.screen.blit( - self.spriteCollection.get("koopa-hiding").image, - (self.rect.x + camera.x, self.rect.y - 32), - ) - if self.timer > 500: - # delete entity - self.alive = None - self.timer += 6 - def sleepingInShell(self, camera): if self.timer < self.timeAfterDeath: self.screen.blit( diff --git a/entities/Mario.py b/entities/Mario.py index 5a37acef..65752458 100644 --- a/entities/Mario.py +++ b/entities/Mario.py @@ -99,7 +99,7 @@ def _onCollisionWithBlock(self, block): block.triggered = True def _onCollisionWithMob(self, mob, collisionState): - if isinstance(mob, RedMushroom): + if isinstance(mob, RedMushroom) and mob.alive: self.powerup(1) self.killEntity(mob) self.sound.play_sfx(self.sound.powerup) @@ -133,6 +133,7 @@ def _onCollisionWithMob(self, mob, collisionState): x, y = self.rect.x, self.rect.y self.rect = pygame.Rect(x, y + 32, 32, 32) self.invincibilityFrames = 60 + self.sound.play_sfx(self.sound.pipe) def bounce(self): self.traits["bounceTrait"].jump = True diff --git a/entities/Mushroom.py b/entities/Mushroom.py index 2088d836..60d04734 100644 --- a/entities/Mushroom.py +++ b/entities/Mushroom.py @@ -54,13 +54,4 @@ def movePointsTextUpAndDraw(self, camera): self.dashboard.drawText("100", self.textPos.x + camera.x, self.textPos.y, 8) def checkEntityCollision(self): - for ent in self.levelObj.entityList: - collisionState = self.EntityCollider.check(ent) - if collisionState.isColliding: - if ent.type == "Mob": - self._onCollisionWithMob(ent, collisionState) - - def _onCollisionWithMob(self, mob, collisionState): - if collisionState.isColliding and mob.alive == "shellBouncing": - self.alive = False - self.sound.play_sfx(self.sound.brick_bump) + pass diff --git a/sfx/pipe.ogg b/sfx/pipe.ogg new file mode 100644 index 0000000000000000000000000000000000000000..e3396e78f94f0b4b68dad8e51e344c4fd7cdf897 GIT binary patch literal 10529 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 literal 0 HcmV?d00001