From e0a33fb714aad96b86664934f57c15cb92824724 Mon Sep 17 00:00:00 2001 From: KikooDX Date: Thu, 21 May 2020 17:58:16 +0200 Subject: [PATCH] [main.c+JTMM.g3a] Momentum lock, paufined the system and more. --- JTMM.g3a | Bin 78624 -> 78720 bytes src/main.c | 36 ++++++++++++++++++++++-------------- up-editor/screens/5050.scr | 2 +- up-editor/screens/5059.scr | 2 +- 4 files changed, 24 insertions(+), 16 deletions(-) diff --git a/JTMM.g3a b/JTMM.g3a index e85347087c12d1b59b2eb9f6e1254c5516619b87..a1ab3827e7890fd1e408129ce6dc2992cd6717b2 100644 GIT binary patch delta 4725 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 TnapHhE_tIrnfW(1Yv=z1j~Q1( delta 4617 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 S*-SpBk^_sgndel=v;G0->MX$k diff --git a/src/main.c b/src/main.c index 800e04b..86cc71b 100644 --- a/src/main.c +++ b/src/main.c @@ -11,9 +11,10 @@ #include "shared_define.h" #define MAX_HSPD 2.5 -#define DRILL_HSPD 6.0 +#define DRILL_HSPD 5.0 #define ACCELERATION 1.0 #define DECELERATION 0.5 +#define LOCK_MOMENTUM 5 #define MIN_VSPD -12.0 #define MAX_VSPD 6.0 #define JUMP_SPD -3.99 @@ -67,6 +68,7 @@ int main(void) char drill_toggle = 0; int drill_x = 0; int drill_y = 0; + int lock_momentum = 0; set_level(level_id, level); DRAW_LEVEL(); player_x = start_x; @@ -144,20 +146,21 @@ int main(void) int trunc_hspd; //ice if (collide(player_x, player_y + 1, level, '~')) friction = 0.2; + if (lock_momentum) friction = 0; //momentum lock part 1 move = keydown(KEY_RIGHT) - keydown(KEY_LEFT); - if (hspd < MAX_HSPD && hspd > -MAX_HSPD) - { - hspd += ACCELERATION * friction * move; - } + hspd += ACCELERATION * friction * move; + if (lock_momentum) lock_momentum--; //momentum lock part 2 if (hspd > 0) { - if (friction != 0.2) hspd -= DECELERATION * friction; + if (friction != 0.2) + hspd -= ((hspd > MAX_HSPD) + 1) * DECELERATION * friction; else hspd -= DECELERATION / 4 * friction; if (hspd < 0) hspd = 0; } - else if (hspd < 0) + else if (hspd < -0) { - if (friction != 0.2) hspd += DECELERATION * friction; + if (friction != 0.2) + hspd += ((hspd < -MAX_HSPD) + 1) * DECELERATION * friction; else hspd += DECELERATION / 4 * friction; if (hspd > 0) hspd = 0; } @@ -296,13 +299,14 @@ int main(void) collide_and_erase(drill_x, drill_y, level, 'd'); if (collide_spike(drill_x, drill_y, level) || collide_solid(drill_x, drill_y, level, polarity, 0)) { - if (selected_direction == UP || selected_direction == DOWN) - { - vspd = -vspd; - drill_toggle = 0; + drill_toggle = 0; + if (selected_direction == UP) vspd = MAX_VSPD; + else if (selected_direction == DOWN) vspd = JUMP_SPD; + else { + lock_momentum = LOCK_MOMENTUM; + if (selected_direction == LEFT) hspd = DRILL_HSPD; + else /*direction is RIGHT*/ hspd = -DRILL_HSPD; } - else if (selected_direction == LEFT) hspd = DRILL_HSPD; - else /*direction is RIGHT*/ hspd = -DRILL_HSPD; } } //spike collision and death @@ -312,6 +316,8 @@ int main(void) player_y = start_y; polarity = 0; drill_toggle = 0; + lock_momentum = 0; + hspd = 0; vspd = 0; } //border warp @@ -339,6 +345,8 @@ int main(void) player_y = start_y; polarity = 0; drill_toggle = 0; + lock_momentum = 0; + hspd = 0; vspd = 0; } } diff --git a/up-editor/screens/5050.scr b/up-editor/screens/5050.scr index 6bb7485..5c7d056 100644 --- a/up-editor/screens/5050.scr +++ b/up-editor/screens/5050.scr @@ -1 +1 @@ -0000000000000000000000000000000000000000000000000000000.....rr..........000000000.....rr..........000000000.....rr..........000000000.....rr..........000000000..E..rr.......t..00000000011111111bbbb.....00000000000000000bbbb~~~~~00000000.........dddd0000000000000.........dddd0000000000000.....T...11110000000000000..S......0000000000000000011111111100000000000000000000000000000000000000000 \ No newline at end of file +0000000000000000000000000000000000000000000000000000000.....rr..........000000000.....rr..........000000000.....rr..........000000000.....rr..........000000000..E..rr.......t..00000000011111111bbbb.....00000000000000000bbbb1111100000000.........dddd0000000000000.........dddd0000000000000.....T...11110000000000000..S......0000000000000000011111111100000000000000000000000000000000000000000 \ No newline at end of file diff --git a/up-editor/screens/5059.scr b/up-editor/screens/5059.scr index e3e033c..5037c76 100644 --- a/up-editor/screens/5059.scr +++ b/up-editor/screens/5059.scr @@ -1 +1 @@ -000000000000000000000000000000000vvvvvv0000000000000000000vv....vv^...v000000000...0v......v^v...000000000...0v..v...v^..^.000000000.S.0vww0v..v^..^.0E.000000rrr0vvww0..v^..^.0..000000.v000vww0.vv^.v^.0v.000000.vv00vvbv.vv^..^..w.000000..v0vvww0..v^..^....000000...0vwrwv..v^..^....000000...0wwwvv..v^v.^w...000000vr..wwvvv.wr...^vvvv0000000vv10000vvv0v0v00000000000000000000000000000000000 \ No newline at end of file +000000000000000000000000000000000vvvvvv0000000000000000000vv....vv^...v000000000...0v......v^v...000000000...0v..v...v^..^.000000000.S.0vww0v..v^..^.0E.000000rrr0vvww0..v^..^.0..000000.v000vww0.vv^.v^.0v.000000.vv00vvbv.vv^..^..w.000000..v0vvww0..v^..^....000000...0vwrwv..v^..^....000000....wwwvv..v^v.^w...000000vr..wwvvv.wr...^vvvv0000000vv10000vvv0v0v00000000000000000000000000000000000 \ No newline at end of file