From: Skullheadx <704277@pdsb.net> Date: Tue, 12 Jul 2022 16:06:53 +0000 (-0400) Subject: added spikes X-Git-Url: http://git.skullheadx.com/nixos/static/gitweb.js?a=commitdiff_plain;h=da249afbff12e52aed2fa494cdef39b641de8793;p=Pygame-Jam.git added spikes --- diff --git a/Assets/world/decor/SPIKE.png b/Assets/world/decor/SPIKE.png new file mode 100644 index 0000000..81f52f2 Binary files /dev/null and b/Assets/world/decor/SPIKE.png differ diff --git a/Game.py b/Game.py index 6a98c72..271a6a8 100644 --- a/Game.py +++ b/Game.py @@ -19,12 +19,12 @@ from UI.HealthBar import HealthBar from UI.PotionUI import PotionUI from World import World from Item import PotionItem - +from Spike import Spike class Game: def __init__(self, level): - self.collision_layer = {"none": set(), "world": set(), "player": set(), "enemy": set(), "pet": set(), "body":set(), "potion":set()} + self.collision_layer = {"none": set(), "world": set(), "player": set(), "enemy": set(), "pet": set(), "body":set(), "potion":set(), "spike":set()} # self.load_world(level) @@ -35,15 +35,18 @@ class Game: self.world = World(self.collision_layer) - enemy_positions, player_position, self.portal_position, heal_positions = self.world.load_world(level) + enemy_positions, player_position, self.portal_position, heal_positions, spike_positions = self.world.load_world(level) for i in heal_positions: PotionItem(i, self.collision_layer["potion"]) + for i in spike_positions: + Spike(i, self.collision_layer["spike"]) self.player = Player(player_position, self.collision_layer["player"], [self.collision_layer["enemy"], self.collision_layer["world"]], [self.collision_layer["enemy"], self.collision_layer["body"]], - self.collision_layer["potion"]) + self.collision_layer["potion"], + self.collision_layer["spike"]) # self.pet = Pet(center, self.collision_layer["pet"], [self.collision_layer["world"]]) self.enemies = [Enemy(pos, self.collision_layer["enemy"], [self.collision_layer["player"], self.collision_layer["world"]]) for pos in @@ -130,6 +133,8 @@ class Game: for potion in self.collision_layer["potion"]: potion.draw(surf) + for spike in self.collision_layer["spike"]: + spike.draw(surf) for particle in particles: particle.draw(surf) diff --git a/Levels/Level5.txt b/Levels/Level5.txt index 218a7fc..61e383f 100644 --- a/Levels/Level5.txt +++ b/Levels/Level5.txt @@ -1,6 +1,6 @@ -none|none|none|none|none|none|none|none|none|none|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world -1250.0,750.0|1200.0,750.0|1350.0,750.0|1350.0,700.0|1450.0,750.0|1450.0,700.0|1450.0,650.0|1450.0,600.0|1450.0,550.0|1250.0,700.0|50.0,800.0|100.0,800.0|150.0,800.0|200.0,800.0|250.0,800.0|300.0,800.0|350.0,800.0|400.0,800.0|450.0,800.0|500.0,800.0|550.0,800.0|600.0,800.0|650.0,800.0|700.0,800.0|750.0,800.0|800.0,800.0|850.0,800.0|900.0,800.0|950.0,800.0|1000.0,800.0|1050.0,800.0|1100.0,800.0|1150.0,800.0|1200.0,800.0|1250.0,800.0|1300.0,800.0|1350.0,800.0|1400.0,800.0|1450.0,800.0|1500.0,800.0|1550.0,800.0|1600.0,800.0|1650.0,800.0|1700.0,800.0|1750.0,800.0|1800.0,800.0|1850.0,800.0|1900.0,800.0|1950.0,800.0|2000.0,800.0|2050.0,800.0|2100.0,800.0|2150.0,850.0|2100.0,850.0|2050.0,850.0|2000.0,850.0|1950.0,850.0|1900.0,850.0|1850.0,850.0|1800.0,850.0|1750.0,850.0|1700.0,850.0|1650.0,850.0|1600.0,850.0|1550.0,850.0|1500.0,850.0|1450.0,850.0|1400.0,850.0|1350.0,850.0|1300.0,850.0|1250.0,850.0|1200.0,850.0|1150.0,850.0|1100.0,850.0|1050.0,850.0|1000.0,850.0|950.0,850.0|900.0,850.0|850.0,850.0|800.0,850.0|750.0,850.0|700.0,850.0|650.0,850.0|600.0,850.0|550.0,850.0|500.0,850.0|450.0,850.0|400.0,850.0|350.0,850.0|300.0,850.0|250.0,850.0|200.0,850.0|150.0,850.0|100.0,850.0|50.0,850.0|0.0,850.0|0.0,800.0|0.0,750.0|0.0,700.0|0.0,650.0|0.0,600.0|0.0,550.0|0.0,400.0|0.0,350.0|0.0,300.0|0.0,250.0|0.0,200.0|0.0,150.0|0.0,100.0|0.0,50.0|0.0,0.0|2200.0,850.0|2200.0,800.0|2200.0,750.0|2200.0,700.0|2200.0,650.0|2200.0,600.0|2150.0,400.0|2200.0,200.0|2200.0,150.0|2200.0,100.0|2200.0,50.0|2200.0,0.0|2150.0,0.0|2150.0,50.0|2150.0,100.0|2150.0,150.0|2150.0,200.0|2150.0,250.0|2150.0,350.0|2150.0,300.0|2200.0,250.0|2200.0,300.0|2200.0,350.0|2200.0,400.0|2200.0,550.0|2150.0,550.0|2150.0,600.0|2150.0,650.0|2150.0,700.0|2150.0,750.0|2150.0,800.0|0.0,450.0|2200.0,450.0|2150.0,450.0|2150.0,500.0|2200.0,500.0|0.0,500.0|1050.0,750.0|1100.0,750.0|1050.0,700.0|1000.0,750.0|700.0,750.0|1450.0,500.0|1400.0,500.0|1350.0,500.0|1300.0,500.0|1250.0,500.0|1200.0,500.0|1150.0,500.0|1100.0,500.0|1050.0,500.0|1000.0,500.0|950.0,500.0|1200.0,700.0|1250.0,400.0|950.0,550.0|950.0,600.0|950.0,650.0|950.0,700.0|950.0,750.0 -GOLDCOIN|BRONZECOIN|PEDESTAL|INTERDIMENSIONALPOWDER|PILLAR_|PILLAR_|PILLAR_|PILLAR_|PILLAR_|SILVERCOIN|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|HEALTHPOTION|HEALTHPOTION|HEALTHPOTION|HEALTHPOTION|HEALTHPOTION|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|ENEMY|PLAYER|PILLAR_|PILLAR_|PILLAR_|PILLAR_|PILLAR_ +none|none|none|none|none|none|none|none|none|none|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world +1250.0,750.0|1200.0,750.0|1350.0,750.0|1350.0,700.0|1450.0,750.0|1450.0,700.0|1450.0,650.0|1450.0,600.0|1450.0,550.0|1250.0,700.0|50.0,800.0|100.0,800.0|150.0,800.0|200.0,800.0|250.0,800.0|300.0,800.0|350.0,800.0|400.0,800.0|450.0,800.0|500.0,800.0|550.0,800.0|600.0,800.0|650.0,800.0|700.0,800.0|750.0,800.0|800.0,800.0|850.0,800.0|900.0,800.0|950.0,800.0|1000.0,800.0|1050.0,800.0|1100.0,800.0|1150.0,800.0|1200.0,800.0|1250.0,800.0|1300.0,800.0|1350.0,800.0|1400.0,800.0|1450.0,800.0|1500.0,800.0|1550.0,800.0|1600.0,800.0|1650.0,800.0|1700.0,800.0|1750.0,800.0|1800.0,800.0|1850.0,800.0|1900.0,800.0|1950.0,800.0|2000.0,800.0|2050.0,800.0|2100.0,800.0|2150.0,850.0|2100.0,850.0|2050.0,850.0|2000.0,850.0|1950.0,850.0|1900.0,850.0|1850.0,850.0|1800.0,850.0|1750.0,850.0|1700.0,850.0|1650.0,850.0|1600.0,850.0|1550.0,850.0|1500.0,850.0|1450.0,850.0|1400.0,850.0|1350.0,850.0|1300.0,850.0|1250.0,850.0|1200.0,850.0|1150.0,850.0|1100.0,850.0|1050.0,850.0|1000.0,850.0|950.0,850.0|900.0,850.0|850.0,850.0|800.0,850.0|750.0,850.0|700.0,850.0|650.0,850.0|600.0,850.0|550.0,850.0|500.0,850.0|450.0,850.0|400.0,850.0|350.0,850.0|300.0,850.0|250.0,850.0|200.0,850.0|150.0,850.0|100.0,850.0|50.0,850.0|0.0,850.0|0.0,800.0|0.0,750.0|0.0,700.0|0.0,650.0|0.0,600.0|0.0,550.0|0.0,400.0|0.0,350.0|0.0,300.0|0.0,250.0|0.0,200.0|0.0,150.0|0.0,100.0|0.0,50.0|0.0,0.0|2200.0,850.0|2200.0,800.0|2200.0,750.0|2200.0,700.0|2200.0,650.0|2200.0,600.0|2150.0,400.0|2200.0,200.0|2200.0,150.0|2200.0,100.0|2200.0,50.0|2200.0,0.0|2150.0,0.0|2150.0,50.0|2150.0,100.0|2150.0,150.0|2150.0,200.0|2150.0,250.0|2150.0,350.0|2150.0,300.0|2200.0,250.0|2200.0,300.0|2200.0,350.0|2200.0,400.0|2200.0,550.0|2150.0,550.0|2150.0,600.0|2150.0,650.0|2150.0,700.0|2150.0,750.0|2150.0,800.0|0.0,450.0|2200.0,450.0|2150.0,450.0|2150.0,500.0|2200.0,500.0|0.0,500.0|1050.0,750.0|1100.0,750.0|1050.0,700.0|1000.0,750.0|700.0,750.0|1450.0,500.0|1400.0,500.0|1350.0,500.0|1300.0,500.0|1250.0,500.0|1200.0,500.0|1150.0,500.0|1100.0,500.0|1050.0,500.0|1000.0,500.0|950.0,500.0|1200.0,700.0|1250.0,400.0|950.0,550.0|950.0,600.0|950.0,650.0|950.0,700.0|950.0,750.0|50.0,750.0|100.0,750.0|150.0,750.0 +GOLDCOIN|BRONZECOIN|PEDESTAL|INTERDIMENSIONALPOWDER|PILLAR_|PILLAR_|PILLAR_|PILLAR_|PILLAR_|SILVERCOIN|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|HEALTHPOTION|HEALTHPOTION|HEALTHPOTION|HEALTHPOTION|HEALTHPOTION|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|ENEMY|PLAYER|PILLAR_|PILLAR_|PILLAR_|PILLAR_|PILLAR_|SPIKE|SPIKE|SPIKE diff --git a/Player.py b/Player.py index 9c45daf..1770ba4 100644 --- a/Player.py +++ b/Player.py @@ -7,6 +7,7 @@ from Actors import Actor from datetime import datetime, timedelta from Potion import Potion from Item import PotionItem +from Spike import Spike from Weapon import Sword from Particle import Dust @@ -29,7 +30,7 @@ class Player(Actor): for i in range(run_gif.n_frames): run_frames.append(pg.transform.scale(pil_to_game(get_gif_frame(run_gif, i)), (155, 155))) - #Player SFX + # Player SFX running_sound = pg.mixer.Sound("Assets/SFX/Running_Sound_Effect.wav") running_sound_channel = pg.mixer.Channel(1) sword_swing_sound = pg.mixer.Sound("Assets/SFX/Sword_Swing.wav") @@ -41,7 +42,7 @@ class Player(Actor): colour = (52, 94, 235) - def __init__(self, pos, collision_layer, collision_mask, can_hurt, heals): + def __init__(self, pos, collision_layer, collision_mask, can_hurt, heals, spikes): super().__init__(pos, collision_layer, collision_mask) # self.initial_position = pg.Vector2(pos) # self.dashCooldown = timedelta(seconds=2, microseconds=500000) @@ -55,7 +56,10 @@ class Player(Actor): # self.lastPressedRight = datetime.utcnow() # self.lastValueR = False self.areas = {"head": Area(self.position, pg.Vector2(0, self.height / 2), self.width, self.height / 2, Actor), - "body": Area(self.position,(0,0),self.width,self.height,PotionItem, self.add_potion)} + "body": Area(self.position, (0, 0), self.width, self.height, PotionItem, self.add_potion), + "body2": Area(self.position, (0, 0), self.width, self.height, Spike, self.die)} + + self.spike_layer = spikes self.heal_layer = heals self.potion_cooldown = 0 @@ -78,6 +82,8 @@ class Player(Actor): self.buffer = [] + def die(self): + self.dead = True def add_potion(self): if len(self.potion_bag) < 3: @@ -92,7 +98,7 @@ class Player(Actor): def attack(self, enemy, weapon, direction): self.friction = 0.9 - super().attack(enemy,weapon,direction) + super().attack(enemy, weapon, direction) def update(self, delta): @@ -106,12 +112,16 @@ class Player(Actor): # Get and handle input self.handle_input() - for i,heal in enumerate(self.heal_layer): + for i, heal in enumerate(self.heal_layer): if len(self.potion_bag) < 3 and self.areas["body"].is_colliding(heal): self.add_potion() self.heal_layer.remove(heal) break + for i in self.spike_layer: + if self.areas["body2"].is_colliding(i): + self.die() + if len(self.potion_bag) > 0: self.potion_bag[0].get_input(self) @@ -131,7 +141,7 @@ class Player(Actor): if self.on_ground == True and self.previous_ground_state == False: self.landing_sound_channel.play(self.landing_sound) - + if self.state == "IDLE": self.display_offsets["player"] = pg.Vector2(0, 0) @@ -186,7 +196,8 @@ class Player(Actor): self.display_offsets["player"] = pg.Vector2(-65, -35) if frame % 2 == 0 and self.on_ground: - Dust(pg.Vector2(self.get_collision_rect().midbottom) + pg.Vector2(math.copysign(1, self.velocity.x) * -self.width/2,-15), 16, self.direction) + Dust(pg.Vector2(self.get_collision_rect().midbottom) + pg.Vector2( + math.copysign(1, self.velocity.x) * -self.width / 2, -15), 16, self.direction) self.current_frame = (self.current_frame + 0.5) % self.run_gif.n_frames @@ -196,7 +207,7 @@ class Player(Actor): if self.on_ground == True and self.previous_ground_state == False: self.running_sound_channel.play(self.running_sound, -1) - + self.previous_state = self.state self.previous_ground_state = self.on_ground return self.position - center @@ -205,7 +216,6 @@ class Player(Actor): if self.stun_time > 0: return - pressed = pygame.key.get_pressed() if pressed[pg.K_w] or pressed[pg.K_UP] or pressed[pg.K_SPACE]: self.jump() @@ -214,7 +224,7 @@ class Player(Actor): if self.state != "ATTACK": if self.state != "RUN": self.current_frame = 0 - + self.state = "RUN" self.move_left() # if (self.lastValueL == False): @@ -235,7 +245,7 @@ class Player(Actor): if self.state != "ATTACK": if self.state != "RUN": self.current_frame = 0 - + self.state = "RUN" self.move_right() @@ -303,7 +313,7 @@ class Player(Actor): a = get_display_rect(self.get_collision_rect()) b = a.topleft + self.display_offsets["player"] - if pg.Rect(b,a.size).colliderect(screen_rect): + if pg.Rect(b, a.size).colliderect(screen_rect): surf.blit(self.display, b) # # for b in self.buffer: diff --git a/Spike.py b/Spike.py new file mode 100644 index 0000000..a16114d --- /dev/null +++ b/Spike.py @@ -0,0 +1,19 @@ +from Setup import * + + +class Spike: + width, height = 50, 50 + img = pg.transform.scale(pg.image.load("Assets/world/decor/SPIKE.png"), (50, 50)) + + def __init__(self, pos, collision_layer): + self.position = pg.Vector2(pos) + collision_layer.add(self) + + def update(self, delta): + pass + + def get_collision_rect(self): + return pg.Rect(self.position, (self.width, self.height)) + + def draw(self, surf): + surf.blit(self.img, get_display_rect(self.get_collision_rect())) diff --git a/World.py b/World.py index 15bf15f..c69f050 100644 --- a/World.py +++ b/World.py @@ -14,7 +14,7 @@ class World: with open(path.join("Levels", f'Level{level}.txt'), 'r') as f: file_contents = f.read().split("\n") - out = [[], center, "a", []] + out = [[], center, "a", [], []] for i in range(0, len(file_contents) - 1, 3): layer = file_contents[i].split("|") pos = file_contents[i + 1].split("|") @@ -34,6 +34,8 @@ class World: out[2] = (x, y) elif t == "HEALTHPOTION": out[3].append((x,y)) + elif t == "SPIKE": + out[4].append((x,y)) elif f"{t}.png" in listdir("Assets/world/decor"): self.blocks.append(Decor((x,y),self.collision_layer["none"],t)) else: