From 5381bb2c20e401fcfe6270e0a76653d8ca535966 Mon Sep 17 00:00:00 2001 From: Stephan Halder <2121472@stud.hs-mannheim.de> Date: Tue, 28 Mar 2023 17:26:47 +0200 Subject: [PATCH] spikeElements implemented --- project/data/levels/level-01.csv | 16 ++++++------ project/level/elements/LoadedLevel.py | 6 +++++ .../elements/static/SpikeLevelElement.py | 25 +++++++++++++++++++ 3 files changed, 39 insertions(+), 8 deletions(-) create mode 100644 project/level/elements/static/SpikeLevelElement.py diff --git a/project/data/levels/level-01.csv b/project/data/levels/level-01.csv index 546a1f7..99426a6 100644 --- a/project/data/levels/level-01.csv +++ b/project/data/levels/level-01.csv @@ -2,14 +2,14 @@ #,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,# #,#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,# #,#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,# -#,#,S,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,# -#,#,S,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,# -#,#,S,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,# -#,#,S,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,C,,,# -#,#,S,,,,,,,,,,,,,,,,,,,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,S,S,S,S,S,S,S,S,+,+,+,+,+,+,+,+,+,# -#,#,S,,,,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,# -#,#,S,,,,,,,,,,,,,,,,,,,,,#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,# -#,#,S,,,,,,,,,,,,,,,,,,,,,#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,# +#,#,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,# +#,#,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,# +#,#,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,# +#,#,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,C,,,# +#,#,>,,,,,,,,,,,,,,,,,,,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,S,S,S,S,S,S,S,S,+,+,+,+,+,+,+,+,+,# +#,#,>,,,,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,# +#,#,>,,,,,,,,,,,,,,,,,,,,,#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,# +#,#,>,,,,,,,,,,,,,,,,,,,,,#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,# #,#,,,,,,,,,,,,,,,,,,,,,,G,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,# #,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,# #,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,# diff --git a/project/level/elements/LoadedLevel.py b/project/level/elements/LoadedLevel.py index 3d08e3a..5dfbebe 100644 --- a/project/level/elements/LoadedLevel.py +++ b/project/level/elements/LoadedLevel.py @@ -3,6 +3,7 @@ from typing import Optional from level.Level import Level from level.elements.dynamic.BouncingBallLevelElement import BouncingBallLevelElement from level.elements.dynamic.PushableBoxLevelElement import PushableBoxLevelElement +from level.elements.static.SpikeLevelElement import SpikeLevelElement from level.elements.static.ButtonInputLevelElement import ButtonInputLevelElement from level.elements.static.GateReceiverLevelElement import GateReceiverLevelElement from level.elements.LevelElement import LevelElement @@ -29,6 +30,11 @@ TILES = { 'M': PushableBoxLevelElement, 'q': BouncingBallLevelElement, + + 'S': SpikeLevelElement, + 's': SpikeLevelElement, + '<': SpikeLevelElement, + '>': SpikeLevelElement } diff --git a/project/level/elements/static/SpikeLevelElement.py b/project/level/elements/static/SpikeLevelElement.py new file mode 100644 index 0000000..94ca474 --- /dev/null +++ b/project/level/elements/static/SpikeLevelElement.py @@ -0,0 +1,25 @@ +import random + +from level.Level import Level +from level.elements.static.StaticLevelElement import StaticLevelElement +from physics.SpriteManager import SpriteManager +from sprite.SpritesheetManager import SpritesheetManager + +BLOCK_TYPES = { + 'S': 'small_spike_up', + 's': 'small_spike_down', + '<': 'small_spike_left', + '>': 'small_spike_right' +} + +class SpikeLevelElement(StaticLevelElement): + + def __init__(self, tile: dict, loaded_level): + super().__init__(tile, loaded_level) + + def load(self, sprite_manager: SpriteManager, spritesheet_manager: SpritesheetManager, level: Level): + block_type = BLOCK_TYPES[self.tile['name']] + + self.spritesheet = spritesheet_manager.get_sheet(block_type) + self.set_animation_state('1') + self.position_scale.position = self.tile['position'] \ No newline at end of file