add outer rotating platforms

This commit is contained in:
Lephenixnoir 2021-08-21 23:31:55 +02:00
parent 4c644a08f1
commit 8fbdaaaaae
Signed by: Lephenixnoir
GPG Key ID: 1BBA026E13FC0495
7 changed files with 38 additions and 14 deletions

View File

@ -36,6 +36,11 @@ set(ASSETS
assets-cg/level/level15.txt
assets-cg/level/level16.txt
assets-cg/level/level17.txt
assets-cg/level/level18.txt
assets-cg/level/level19.txt
assets-cg/level/level20.txt
assets-cg/level/level21.txt
assets-cg/level/level22.txt
)
fxconv_declare_converters(converters.py)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 960 B

After

Width:  |  Height:  |  Size: 994 B

View File

@ -1,4 +1,4 @@
#To Try to invites failure.
#To try invites failure.
left
left

View File

@ -13,7 +13,6 @@ def convert_level(input, output, params, target):
lines = [tempo.split(",") for tempo in raw if not tempo.startswith("#")]
messages = [l[1:].strip() for l in raw if l.startswith("#")]
message = "\n".join(l.replace("\\n", "\n") for l in messages)
print(message)
blocks = bytes()
block_count = 0
@ -21,7 +20,6 @@ def convert_level(input, output, params, target):
for (tempo, rects) in enumerate(lines):
for r in [r for r in rects if r]:
r = r.strip().split()
print(tempo, r)
shape, action, position = -1, 0, -1
# Shape
@ -40,6 +38,14 @@ def convert_level(input, output, params, target):
if "long_vertical" in r:
shape = 7
# Position
if "left" in r:
position = 0
if "right" in r:
position = 1
if "middle" in r:
position = 2
# Action
if "rotate_left" in r:
action = 1
@ -59,20 +65,19 @@ def convert_level(input, output, params, target):
action = 8
if "fast_3" in r:
action = 9
# Position
if "left" in r:
position = 0
if "right" in r:
position = 1
if "middle" in r:
position = 2
if "rotate" in r and position == 0:
action = 6
if "rotate" in r and position == 1:
action = 5
# Implicit rules
# Rotating in the middle -> long
if shape < 0 and position == 2 and action in [1, 2]:
shape = 5
# Rotating on the side -> huge
if shape < 0 and position in [0, 1] and action in [5, 6]:
shape = 6
# In the middle -> medium
if shape < 0 and position == 2:
shape = 3

View File

@ -140,7 +140,8 @@ extern level_t level1, level2, level3, level4;
extern level_t level5, level6, level7, level8;
extern level_t level9, level10, level11, level12;
extern level_t level13, level14, level15, level16;
extern level_t level17;
extern level_t level17, level18, level19, level20;
extern level_t level21, level22;
//---
// Menu

View File

@ -54,12 +54,13 @@ int main(void)
level_t const *story_levels[] = {
&level1, &level2, &level3, &level4, &level5, &level6, &level7,
&level8, &level9, &level10, &level11, &level12, &level13, &level14,
&level15, &level16, &level17,
&level15, &level16, &level17, &level18, &level19, &level20, &level21,
&level22,
NULL,
};
int story_position = main_menu();
story_position = 11;
story_position = 16;
game_t game;
memset(&game, 0x00, sizeof game);

View File

@ -97,12 +97,16 @@ void rect_load(rect_t *r, rectmeta_t const *meta)
case Position_Left:
if(meta->shape == Shape_Square)
r->y = DHEIGHT/2 - 0.22*CORRIDOR_SIZE;
else if(meta->shape == Shape_HugeBar)
r->y = DHEIGHT/2 - 0.38*CORRIDOR_SIZE;
else
r->y = DHEIGHT/2 - CORRIDOR_SIZE/2 + r->h/2;
break;
case Position_Right:
if(meta->shape == Shape_Square)
r->y = DHEIGHT/2 + 0.22*CORRIDOR_SIZE;
else if(meta->shape == Shape_HugeBar)
r->y = DHEIGHT/2 + 0.38*CORRIDOR_SIZE;
else
r->y = DHEIGHT/2 + CORRIDOR_SIZE/2 - r->h/2;
break;
@ -132,4 +136,12 @@ void rect_physics(rect_t *r, rectmeta_t const *meta, float absolute_time)
float speeding_period = fminf(2.0, fmaxf(0.0, time + 6.0));
r->x -= RECT_SPEED * speeding_period;
}
else if(meta->action == Action_OuterRotateLeft) {
float vr = 0.7; /* rad/tempo */
r->r = time * vr;
}
else if(meta->action == Action_OuterRotateRight) {
float vr = 0.7; /* rad/tempo */
r->r = -time * vr;
}
}