[main.c+JTMM.g3a] Momentum lock, paufined the system and more.

This commit is contained in:
KikooDX 2020-05-21 17:58:16 +02:00
parent c63cd15cc5
commit e0a33fb714
4 changed files with 24 additions and 16 deletions

BIN
JTMM.g3a

Binary file not shown.

View File

@ -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;
}
}

View File

@ -1 +1 @@
0000000000000000000000000000000000000000000000000000000.....rr..........000000000.....rr..........000000000.....rr..........000000000.....rr..........000000000..E..rr.......t..00000000011111111bbbb.....00000000000000000bbbb~~~~~00000000.........dddd0000000000000.........dddd0000000000000.....T...11110000000000000..S......0000000000000000011111111100000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000.....rr..........000000000.....rr..........000000000.....rr..........000000000.....rr..........000000000..E..rr.......t..00000000011111111bbbb.....00000000000000000bbbb1111100000000.........dddd0000000000000.........dddd0000000000000.....T...11110000000000000..S......0000000000000000011111111100000000000000000000000000000000000000000

View File

@ -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
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