Added missing sprite texture for level elements
parent
bb19ba4602
commit
f25bc0112c
|
@ -26,17 +26,18 @@
|
||||||
#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#
|
#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#
|
||||||
#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#
|
#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#
|
||||||
#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#
|
#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#
|
||||||
#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,x,x,x,x,x,x,x,x,x,,,,,,,,,,,P,,,,,,,,,#
|
#,,,,,,,,,,,,,,,,P,,,,,,,,,,,,,,,,,,,,,,,,,,x,x,x,x,x,x,x,x,x,,,,,,,,,,,,,,,,,D,,,#
|
||||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,r,,,,,,,,,,,l,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
||||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,r,,,,,,,,,,,,,,l,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
||||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,r,,,,,,,,,,,,,,l,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
||||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,r,,,,,,,,,,,,,,l,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
||||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,r,,,,,,,,,,,,,,l,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
||||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,r,,,,,,,,,,,,,,l,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
||||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,r,,,,,,,,,,,,,,l,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
||||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,r,,,,,,,,,,,,,,l,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
||||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,r,,,,,,,,,,,,,,l,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
||||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,r,,,,,,,,,,,,,,l,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
||||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,r,,,,,,,,,,,,,,l,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
||||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,r,,,,,,,,,,,,,,l,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
||||||
3,3,id=HEBEL
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||||
|
16,28,id=HEBEL,emitter_state=false,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
Can't render this file because it has a wrong number of fields in line 42.
|
Binary file not shown.
After Width: | Height: | Size: 513 B |
Binary file not shown.
Before Width: | Height: | Size: 575 B After Width: | Height: | Size: 963 B |
|
@ -1,4 +1,18 @@
|
||||||
[
|
[
|
||||||
|
{
|
||||||
|
"id": "missing",
|
||||||
|
"subsheets": [
|
||||||
|
{
|
||||||
|
"id": "1",
|
||||||
|
"delays": [
|
||||||
|
60,
|
||||||
|
60
|
||||||
|
],
|
||||||
|
"width": 12,
|
||||||
|
"height": 12
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"id": "goal_door",
|
"id": "goal_door",
|
||||||
"subsheets": [
|
"subsheets": [
|
||||||
|
|
|
@ -39,6 +39,8 @@ class Level:
|
||||||
tile[split_item[0]] = split_item[1]
|
tile[split_item[0]] = split_item[1]
|
||||||
elif split_item[0] == 'requires':
|
elif split_item[0] == 'requires':
|
||||||
tile[split_item[0]] = split_item[1].split(';')
|
tile[split_item[0]] = split_item[1].split(';')
|
||||||
|
elif split_item[0] == 'emitter_state':
|
||||||
|
tile[split_item[0]] = split_item[1].split(';')
|
||||||
else:
|
else:
|
||||||
raise ValueError('Incorrect attribute name: ' + split_item[0])
|
raise ValueError('Incorrect attribute name: ' + split_item[0])
|
||||||
tiles[x][y] = tile
|
tiles[x][y] = tile
|
||||||
|
|
|
@ -8,15 +8,12 @@ from sprite.SpritesheetManager import SpritesheetManager
|
||||||
class ButtonInputLevelElement(InputLevelElement):
|
class ButtonInputLevelElement(InputLevelElement):
|
||||||
|
|
||||||
def load(self, sprite_manager: SpriteManager, spritesheet_manager: SpritesheetManager, level: Level):
|
def load(self, sprite_manager: SpriteManager, spritesheet_manager: SpritesheetManager, level: Level):
|
||||||
name = self.tile['name']
|
|
||||||
position = self.tile['position']
|
|
||||||
|
|
||||||
self.spritesheet = spritesheet_manager.get_sheet('pressureplate')
|
self.spritesheet = spritesheet_manager.get_sheet('pressureplate')
|
||||||
self.set_animation_state('on' if self.emitter_state else 'off')
|
self.set_animation_state('on' if self.emitter_state else 'off')
|
||||||
self.position_scale.position = position
|
self.position_scale.position = self.tile['position']
|
||||||
|
|
||||||
def tick(self, tick_data: TickData):
|
def tick(self, tick_data: TickData):
|
||||||
super().tick(tick_data)
|
super().tick(tick_data)
|
||||||
|
|
||||||
collisions = self.get_collides_with()
|
collisions = self.get_collides_with()
|
||||||
print(collisions)
|
# print(collisions)
|
||||||
|
|
|
@ -1,13 +1,20 @@
|
||||||
|
|
||||||
from level.Level import Level
|
from level.Level import Level
|
||||||
from level.elements.ButtonInputLevelElement import ButtonInputLevelElement
|
from level.elements.ButtonInputLevelElement import ButtonInputLevelElement
|
||||||
from level.elements.SimpleBlockLevelElement import SimpleBlockLevelElement
|
from level.elements.SimpleBlockLevelElement import SimpleBlockLevelElement
|
||||||
|
from level.elements.UnknownTileLevelElement import UnknownTileLevelElement
|
||||||
from physics import ConstantsParser
|
from physics import ConstantsParser
|
||||||
from physics.SpriteManager import SpriteManager, DrawLayers
|
from physics.SpriteManager import SpriteManager, DrawLayers
|
||||||
from sprite.SpritesheetManager import SpritesheetManager
|
from sprite.SpritesheetManager import SpritesheetManager
|
||||||
|
|
||||||
TILES = {
|
TILES = {
|
||||||
'#': SimpleBlockLevelElement,
|
'#': SimpleBlockLevelElement,
|
||||||
|
'+': SimpleBlockLevelElement,
|
||||||
|
'-': SimpleBlockLevelElement,
|
||||||
|
'l': SimpleBlockLevelElement,
|
||||||
|
'r': SimpleBlockLevelElement,
|
||||||
|
'~': SimpleBlockLevelElement,
|
||||||
|
'|': SimpleBlockLevelElement,
|
||||||
|
|
||||||
'L': ButtonInputLevelElement, # TODO
|
'L': ButtonInputLevelElement, # TODO
|
||||||
'P': ButtonInputLevelElement
|
'P': ButtonInputLevelElement
|
||||||
}
|
}
|
||||||
|
@ -25,17 +32,21 @@ class LoadedLevel:
|
||||||
position = (tile_number * ConstantsParser.CONFIG.block_size[0],
|
position = (tile_number * ConstantsParser.CONFIG.block_size[0],
|
||||||
row_number * ConstantsParser.CONFIG.block_size[1])
|
row_number * ConstantsParser.CONFIG.block_size[1])
|
||||||
tile['position'] = position
|
tile['position'] = position
|
||||||
|
|
||||||
name = tile['name']
|
name = tile['name']
|
||||||
|
|
||||||
|
element = None
|
||||||
|
|
||||||
if name in TILES:
|
if name in TILES:
|
||||||
element = TILES[name](tile, self)
|
element = TILES[name](tile, self)
|
||||||
|
elif not name == '':
|
||||||
|
print(f"Unknown tile at {position}: {name}")
|
||||||
|
element = UnknownTileLevelElement(tile, self)
|
||||||
|
|
||||||
|
if element:
|
||||||
self.blocks.append(element)
|
self.blocks.append(element)
|
||||||
self.sprite_manager.add_ui_element(DrawLayers.OBJECTS, element)
|
self.sprite_manager.add_ui_element(DrawLayers.OBJECTS, element)
|
||||||
element.load(self.sprite_manager, self.spritesheet_manager, level)
|
element.load(self.sprite_manager, self.spritesheet_manager, level)
|
||||||
|
|
||||||
elif not name == '':
|
|
||||||
print(f"Unknown tile: {name}")
|
|
||||||
|
|
||||||
def destroy_level(self):
|
def destroy_level(self):
|
||||||
for block in self.blocks:
|
for block in self.blocks:
|
||||||
self.sprite_manager.remove_ui_element(block)
|
self.sprite_manager.remove_ui_element(block)
|
||||||
|
|
|
@ -6,7 +6,13 @@ from physics.SpriteManager import SpriteManager
|
||||||
from sprite.SpritesheetManager import SpritesheetManager
|
from sprite.SpritesheetManager import SpritesheetManager
|
||||||
|
|
||||||
BLOCK_TYPES = {
|
BLOCK_TYPES = {
|
||||||
'#': 'block_full'
|
'#': 'block_full',
|
||||||
|
'+': 'block_top',
|
||||||
|
'-': 'block_bottom',
|
||||||
|
'l': 'block_left',
|
||||||
|
'r': 'block_right',
|
||||||
|
'~': 'block_top_left',
|
||||||
|
'|': 'block_top_right'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -15,10 +21,12 @@ class SimpleBlockLevelElement(StaticLevelElement):
|
||||||
super().__init__(tile, loaded_level)
|
super().__init__(tile, loaded_level)
|
||||||
|
|
||||||
def load(self, sprite_manager: SpriteManager, spritesheet_manager: SpritesheetManager, level: Level):
|
def load(self, sprite_manager: SpriteManager, spritesheet_manager: SpritesheetManager, level: Level):
|
||||||
name = self.tile['name']
|
if self.tile['name'] in BLOCK_TYPES:
|
||||||
position = self.tile['position']
|
block_type = BLOCK_TYPES[self.tile['name']]
|
||||||
block_type = BLOCK_TYPES[name]
|
else:
|
||||||
|
block_type = 'block_full'
|
||||||
|
print(f"Unknown block type: {self.tile['name']} {self.tile['position']}")
|
||||||
|
|
||||||
self.spritesheet = spritesheet_manager.get_sheet(level.theme + '_' + block_type)
|
self.spritesheet = spritesheet_manager.get_sheet(level.theme + '_' + block_type)
|
||||||
self.set_animation_state(str(random.randint(1, 3)))
|
self.set_animation_state(str(random.randint(1, 3)))
|
||||||
self.position_scale.position = position
|
self.position_scale.position = self.tile['position']
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
from level.Level import Level
|
||||||
|
from level.elements.StaticLevelElement import StaticLevelElement
|
||||||
|
from physics.SpriteManager import SpriteManager
|
||||||
|
from sprite.SpritesheetManager import SpritesheetManager
|
||||||
|
|
||||||
|
|
||||||
|
class UnknownTileLevelElement(StaticLevelElement):
|
||||||
|
def load(self, sprite_manager: SpriteManager, spritesheet_manager: SpritesheetManager, level: Level):
|
||||||
|
self.spritesheet = spritesheet_manager.get_sheet('missing')
|
||||||
|
self.set_animation_state('1')
|
||||||
|
self.position_scale.position = self.tile['position']
|
Loading…
Reference in New Issue