sep-pm-platformer/project/level/elements/static/SpikeLevelElement.py

30 lines
1.1 KiB
Python
Raw Normal View History

2023-03-28 17:26:47 +02:00
from level.Level import Level
from level.elements.static.StaticLevelElement import StaticLevelElement
from physics.SpriteManager import SpriteManager
from physics.TickData import TickData
2023-03-28 17:26:47 +02:00
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, level_screen_manager: 'LevelScreenManager'):
super().__init__(tile, loaded_level, level_screen_manager)
2023-03-28 17:26:47 +02:00
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']
def tick(self, tick_data: TickData):
super().tick(tick_data)
for collision in self.get_collides_with():
if collision.secondary_sprite.id == 'player':
self.level_screen_manager.player_death()