Compare commits
3 Commits
96a6ccff39
...
4e51f01cea
Author | SHA1 | Date |
---|---|---|
|
4e51f01cea | |
|
b46097f735 | |
|
bbf06c5655 |
|
@ -678,6 +678,9 @@ bool vert_scrollarea_n_items(VertScrollArea_t* scroll_area, unsigned int n_items
|
||||||
scroll_area->n_items = n_items;
|
scroll_area->n_items = n_items;
|
||||||
scroll_area->scroll_bounds.x =
|
scroll_area->scroll_bounds.x =
|
||||||
(scroll_area->max_items - n_items)* (scroll_area->item_height + scroll_area->item_padding) + scroll_area->item_padding;
|
(scroll_area->max_items - n_items)* (scroll_area->item_height + scroll_area->item_padding) + scroll_area->item_padding;
|
||||||
|
if (scroll_area->scroll_bounds.x > scroll_area->scroll_bounds.y) {
|
||||||
|
scroll_area->scroll_bounds.x = scroll_area->scroll_bounds.y;
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -47,9 +47,10 @@ ENUMIDS_TILETYPE_MAPPING = {
|
||||||
DANGER_COLOUR = (239,79,81,255)
|
DANGER_COLOUR = (239,79,81,255)
|
||||||
WCRATE_COLOUR = (160,117,48,255)
|
WCRATE_COLOUR = (160,117,48,255)
|
||||||
MCRATE_COLOUR = (110,110,110,255)
|
MCRATE_COLOUR = (110,110,110,255)
|
||||||
WATER_COLOUR = (0,0,110,128)
|
WATER_COLOUR = (0,0,128,64)
|
||||||
|
|
||||||
REC_DRAW_FUNCTION = lambda ctx,x,y,s,c : ctx.rectangle(((x,y), (x+s-1, y+s-1)), c)
|
REC_DRAW_FUNCTION = lambda ctx,x,y,s,c : ctx.rectangle(((x,y), (x+s-1, y+s-1)), c)
|
||||||
|
RECLINE_DRAW_FUNCTION = lambda ctx,x,y,s,c : ctx.rectangle(((x,y), (x+s-1, y+s-1)), fill=None, outline=c)
|
||||||
UPHALFREC_DRAW_FUNCTION = lambda ctx,x,y,s,c : ctx.rectangle(((x,y), (x+s-1, y+s//2-1)), c)
|
UPHALFREC_DRAW_FUNCTION = lambda ctx,x,y,s,c : ctx.rectangle(((x,y), (x+s-1, y+s//2-1)), c)
|
||||||
DOWNHALFREC_DRAW_FUNCTION = lambda ctx,x,y,s,c : ctx.rectangle(((x, y+s//2), (x+s-1,y+s-1)), c)
|
DOWNHALFREC_DRAW_FUNCTION = lambda ctx,x,y,s,c : ctx.rectangle(((x, y+s//2), (x+s-1,y+s-1)), c)
|
||||||
LEFTHALFREC_DRAW_FUNCTION = lambda ctx,x,y,s,c : ctx.rectangle(((x,y), (x+s//2-1, y+s-1)), c)
|
LEFTHALFREC_DRAW_FUNCTION = lambda ctx,x,y,s,c : ctx.rectangle(((x,y), (x+s//2-1, y+s-1)), c)
|
||||||
|
@ -82,7 +83,7 @@ def draw_urchin_tile(ctx, x, y, s, c):
|
||||||
TILETYPE_SHAPE_MAP = {
|
TILETYPE_SHAPE_MAP = {
|
||||||
'Solid': (REC_DRAW_FUNCTION, (0,0,0,255)),
|
'Solid': (REC_DRAW_FUNCTION, (0,0,0,255)),
|
||||||
'WoodenPlat': (UPHALFREC_DRAW_FUNCTION, (128,64,0,255)),
|
'WoodenPlat': (UPHALFREC_DRAW_FUNCTION, (128,64,0,255)),
|
||||||
'Ladder': (REC_DRAW_FUNCTION, (214,141,64,255)),
|
'Ladder': (RECLINE_DRAW_FUNCTION, (214,141,64,255)),
|
||||||
'LSpike': (LEFTHALFREC_DRAW_FUNCTION, DANGER_COLOUR),
|
'LSpike': (LEFTHALFREC_DRAW_FUNCTION, DANGER_COLOUR),
|
||||||
'RSpike': (RIGHTHALFREC_DRAW_FUNCTION, DANGER_COLOUR),
|
'RSpike': (RIGHTHALFREC_DRAW_FUNCTION, DANGER_COLOUR),
|
||||||
'USpike': (UPHALFREC_DRAW_FUNCTION, DANGER_COLOUR),
|
'USpike': (UPHALFREC_DRAW_FUNCTION, DANGER_COLOUR),
|
||||||
|
@ -165,7 +166,9 @@ FULL_IMG_HEIGHT = N_ROWS * IMG_HEIGHT
|
||||||
# Then loop the levels. Read the layerIndstances
|
# Then loop the levels. Read the layerIndstances
|
||||||
|
|
||||||
lvl_render = Image.new("RGBA", (FULL_IMG_WIDTH, FULL_IMG_HEIGHT), (255,255,255,0))
|
lvl_render = Image.new("RGBA", (FULL_IMG_WIDTH, FULL_IMG_HEIGHT), (255,255,255,0))
|
||||||
|
water_render = Image.new("RGBA", (FULL_IMG_WIDTH, FULL_IMG_HEIGHT), (255,255,255,0))
|
||||||
render_ctx = ImageDraw.Draw(lvl_render)
|
render_ctx = ImageDraw.Draw(lvl_render)
|
||||||
|
water_render_ctx = ImageDraw.Draw(water_render)
|
||||||
for l, level in enumerate(all_levels):
|
for l, level in enumerate(all_levels):
|
||||||
lx = (l % LEVELS_PER_ROW) * IMG_WIDTH
|
lx = (l % LEVELS_PER_ROW) * IMG_WIDTH
|
||||||
ly = (l // LEVELS_PER_ROW) * IMG_HEIGHT
|
ly = (l // LEVELS_PER_ROW) * IMG_HEIGHT
|
||||||
|
@ -247,7 +250,8 @@ for l, level in enumerate(all_levels):
|
||||||
continue
|
continue
|
||||||
x, y = (i % width * TILE_SIZE + OFFSET[0], i // width * TILE_SIZE + OFFSET[1])
|
x, y = (i % width * TILE_SIZE + OFFSET[0], i // width * TILE_SIZE + OFFSET[1])
|
||||||
height = TILE_SIZE * water_level / 4
|
height = TILE_SIZE * water_level / 4
|
||||||
render_ctx.rectangle(((x,y+TILE_SIZE-height), (x+TILE_SIZE-1, y+TILE_SIZE-1)), WATER_COLOUR)
|
water_render_ctx.rectangle(((x,y+TILE_SIZE-height), (x+TILE_SIZE-1, y+TILE_SIZE-1)), WATER_COLOUR)
|
||||||
|
|
||||||
|
lvl_render = Image.alpha_composite(lvl_render, water_render)
|
||||||
lvl_render.save("preview.png")
|
lvl_render.save("preview.png")
|
||||||
lvl_render.show()
|
lvl_render.show()
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
#!/bin/sh
|
#!/bin/bash
|
||||||
|
source venv/bin/activate
|
||||||
python ldtk_repacker.py $1.ldtk && zstd $1.lvldata
|
python ldtk_repacker.py $1.ldtk && zstd $1.lvldata && python level_render.py $1.ldtk
|
||||||
|
|
|
@ -878,7 +878,7 @@ void tile_collision_system(Scene_t* scene)
|
||||||
if ((collide_side & (1<<2)) || (collide_side & (1<<3)))
|
if ((collide_side & (1<<2)) || (collide_side & (1<<3)))
|
||||||
{
|
{
|
||||||
Vector2 check_pos = p_ent->position;
|
Vector2 check_pos = p_ent->position;
|
||||||
check_pos.x += p_ctransform->velocity.x * scene->delta_time;
|
check_pos.x += (signbit(p_ctransform->velocity.x) ? -1: 1);
|
||||||
if (check_collision_at(p_ent, check_pos, p_bbox->size, &tilemap))
|
if (check_collision_at(p_ent, check_pos, p_bbox->size, &tilemap))
|
||||||
{
|
{
|
||||||
p_ctransform->velocity.x *= -p_ctransform->bounce_coeff;
|
p_ctransform->velocity.x *= -p_ctransform->bounce_coeff;
|
||||||
|
@ -889,7 +889,7 @@ void tile_collision_system(Scene_t* scene)
|
||||||
if ((collide_side & (1<<1)) || (collide_side & (1)))
|
if ((collide_side & (1<<1)) || (collide_side & (1)))
|
||||||
{
|
{
|
||||||
Vector2 check_pos = p_ent->position;
|
Vector2 check_pos = p_ent->position;
|
||||||
check_pos.y += p_ctransform->velocity.y * scene->delta_time;
|
check_pos.y += (signbit(p_ctransform->velocity.y) ? -1: 1);
|
||||||
if (check_collision_at(p_ent, check_pos, p_bbox->size, &tilemap))
|
if (check_collision_at(p_ent, check_pos, p_bbox->size, &tilemap))
|
||||||
{
|
{
|
||||||
p_ctransform->velocity.y *= -p_ctransform->bounce_coeff;
|
p_ctransform->velocity.y *= -p_ctransform->bounce_coeff;
|
||||||
|
|
Loading…
Reference in New Issue