From 262a30be49283a372e18efc0ca9faa1125641dab Mon Sep 17 00:00:00 2001 From: Michael Ly Date: Sat, 24 Oct 2020 03:56:14 -0500 Subject: [PATCH] Add CoinBrick entity and add to Level 1-1. --- classes/Level.py | 15 +++++++++++++++ entities/CoinBrick.py | 27 +++++++++++++++++++++++++++ levels/Level1-1.json | 3 +++ 3 files changed, 45 insertions(+) create mode 100644 entities/CoinBrick.py diff --git a/classes/Level.py b/classes/Level.py index daa08906..fdbe22db 100644 --- a/classes/Level.py +++ b/classes/Level.py @@ -7,6 +7,7 @@ from entities.Goomba import Goomba from entities.Koopa import Koopa from entities.RandomBox import RandomBox +from entities.CoinBrick import CoinBrick class Level: def __init__(self, screen, sound, dashboard): @@ -32,6 +33,7 @@ def loadEntities(self, data): [self.addGoomba(x, y) for x, y in data["level"]["entities"]["Goomba"]] [self.addKoopa(x, y) for x, y in data["level"]["entities"]["Koopa"]] [self.addCoin(x, y) for x, y in data["level"]["entities"]["coin"]] + [self.addCoinBrick(x, y) for x, y in data["level"]["entities"]["coinBrick"]] except: #if no entities in Level pass @@ -159,6 +161,19 @@ def addRandomBox(self, x, y): def addCoin(self, x, y): self.entityList.append(Coin(self.screen, self.sprites.spriteCollection, x, y)) + def addCoinBrick(self, x, y): + self.level[y][x] = Tile(None, pygame.Rect(x * 32, y * 32 - 1, 32, 32)) + self.entityList.append( + CoinBrick( + self.screen, + self.sprites.spriteCollection, + x, + y, + self.sound, + self.dashboard + ) + ) + def addGoomba(self, x, y): self.entityList.append( Goomba(self.screen, self.sprites.spriteCollection, x, y, self, self.sound) diff --git a/entities/CoinBrick.py b/entities/CoinBrick.py new file mode 100644 index 00000000..1b1ee74f --- /dev/null +++ b/entities/CoinBrick.py @@ -0,0 +1,27 @@ +from copy import copy + +from entities.EntityBase import EntityBase +from entities.Item import Item + + +class CoinBrick(EntityBase): + def __init__(self, screen, spriteCollection, x, y, sound, dashboard, gravity=0): + super(CoinBrick, self).__init__(x, y, gravity) + self.screen = screen + self.spriteCollection = spriteCollection + self.image = self.spriteCollection.get("bricks").image + self.type = "Block" + self.triggered = False + self.sound = sound + self.dashboard = dashboard + self.item = Item(spriteCollection, screen, self.rect.x, self.rect.y) + + def update(self, cam): + if not self.alive or self.triggered: + self.image = self.spriteCollection.get("empty").image + self.item.spawnCoin(cam, self.sound, self.dashboard) + self.screen.blit( + self.spriteCollection.get("sky").image, + (self.rect.x + cam.x, self.rect.y + 2), + ) + self.screen.blit(self.image, (self.rect.x + cam.x, self.rect.y - 1)) diff --git a/levels/Level1-1.json b/levels/Level1-1.json index c1813bd4..27f56c37 100644 --- a/levels/Level1-1.json +++ b/levels/Level1-1.json @@ -72,6 +72,9 @@ [42,5], [56,2] ], + "coinBrick":[ + [37,9] + ], "coin":[ [21,8], [22,8],