fix one bug + arrange level
This commit is contained in:
parent
1058fccb15
commit
238549a5ad
|
@ -46,7 +46,8 @@ add_custom_command(
|
|||
editor/levels/16.lvl
|
||||
editor/levels/17.lvl
|
||||
editor/levels/18.lvl
|
||||
editor/levels/19.lvl)
|
||||
editor/levels/19.lvl
|
||||
editor/levels/20.lvl)
|
||||
|
||||
set(SOURCES
|
||||
src/collide.c
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 247 B After Width: | Height: | Size: 250 B |
|
@ -1,4 +1,4 @@
|
|||
11111111t133111111100011111111111133311111110K01111100000100111111111000111110s00010i11111100000001111d110K10i11111d000000011111110K10i1111a001BBBBB11110000010i111d0a010000011110000010i11a03011d0ddd1111001ddd0i1d0a0d110000011110000000i0a30111100e00111100000k0130ad11110aa001111dd000001031111111ddd11111111111B1001111111aaa11111111111010011111110001116
|
||||
dddddddddddddddddddddddddBBBBBBBBBBBBBBBBBBBBBBBBB100001kk10011111dt0a000011000010010010000d11a00001100001BB100100000000000013000000000010001110000000300000000001aaaaaa0000000111111000001000000001111110dd00000001000000001000110000000a001BBBd00a0100013000000000010001000010003300s000000010K0100001e003aaBBBBBBBBBBBBBBBBBBBaaaaddddddddddddddddddddddddd6
|
||||
13
|
||||
10
|
||||
1
|
|
@ -1,4 +1,4 @@
|
|||
1ddddddddddd11dddddddddd11dddddddddd00000dd3aaa11i1dd111100000000000030000i1dd000000000001110003000i1d000001111100K000003000i1d00000S00k0000000003aBB110s000100000ddd011103atl11111331ddddddddddddddd1111ddd001dddddddd11d0S0ddd11ddd00d1dd11d000300000dd11ddd000000000000300000dd11dddaaa00000000d3S00e0dd11dddddd00S0d111d3d000ddd11ddddddddddddddddddddddd16
|
||||
00000ddddddd100000000000011111111111111111110011111000000dd1111ddd0K10000b1100111000000100000100000110000100000010000010010011000k111dd101dd00d10000011000110000001000001BBBB011000100011dd1000001dddd01100010ddd1dd1d00dd1011001133310ddd1dd1BBBBB1t00001100000ddd1dd1000001ddd1111s0000ddd1dd10000011111111BBB111aaaaa110001111111100000000000e10000000000006
|
||||
13
|
||||
10
|
||||
1
|
|
@ -1,4 +1,4 @@
|
|||
1111111111010001dd11111110000001000013331001000000000000100t01000h0010000001111iB111111000h0013311111e00ik11d111000300300000d10ddi011d0010003003000s0d10aai01000010001hh1hh11111000i01h1h1100010010000011dd0i000000h00010010001a11aa01dd0dd110001001000h0110001dd1d1110S0100100010110000S0S0001ddd100h0001Kd100000S0S001111100h00011111111dddd10h00011111111116
|
||||
1111111111111ddd11iK1d00100000d111000000011it1d00000000d100000000011i31110011100d13331110e011ihhh11100000d100011111111i00000000000d100000011111i00111011100d1000000000011000s111111111000000000011dd0001hk001111i00Sddd001dddd00hh0000001i000111000aad1ddhddd0000000001110000001111111dd0000000111000000001111111dd000011110000000001111111111111111ddd13100017
|
||||
13
|
||||
10
|
||||
1
|
|
@ -1,4 +1,4 @@
|
|||
11111111111111111111111111ddddddddd0S00ddddddddddd1ddddaaaaa000000ddddddddd1ddd00S000000e0ddd0dddddd1dd000000ddddddd00000dddd1daaaa00dd11100S00S000ddd10000000d00000000000S00dd10K000h0d00001100000000dd1111000ddd000000S0d0h00dd1ddd000dd000dd000ddd000dd1dddhhdd000ddddddddd000dd1ddb00S0000100000dd0000dd1dtb00000011s000000000ddd111111d11111111111111dddd6
|
||||
13
|
||||
1333111111111111iiii11111i000d1iii1iiii000000d0001i0000iiii1iiii000000d0e0ii000000001iii1000000d000ii000000001iid1aaa0000000ii00S000000000000a000S000i1t000K00000S0000i1rr1iid111iiii1ii1rrr1iiid000000i10k00000000000000000i000i10000000000000000000i000i1333rrii11iiiirriii11000i100000000000000000000000i10s0000000000000000000S011333iiirriirriii111iiii116
|
||||
8
|
||||
10
|
||||
1
|
|
@ -1,4 +1,4 @@
|
|||
1111111111111ddd11iK1d00100000d111000000011it1d00000000d100000000011i31110011100d13331110e011ihhh11100000d100011111111i00000000000d100000011111i00111011100d1000000000011000s111111111000000000011dd0001hk001111i00Sddd001dddd00hh0000001i000111000aad1ddhddd0000000001110000001111111dd0000000111000000001111111dd000011110000000001111111111111111ddd13100017
|
||||
1111111111010001dd11111110000001000013331001000000000000100t01000h0010000001111iB111111000h0013311111e00ik11d111000300300000d10ddi011d0010003003000s0d10aai01000010001hh1hh11111000i01h1h1100010010000011dd0i000000h00010010001a11aa01dd0dd110001001000h0110001dd1d1110S0100100010110000S0S0001ddd100h0001Kd100000S0S001111100h00011111111dddd10h00011111111116
|
||||
13
|
||||
10
|
||||
1
|
|
@ -1,4 +1,4 @@
|
|||
i011100dd1111dddm111ddmd1i01d1000000010S0011100S01i01d100000001000000000001i01d1cc111001hh1c11111001i01ddddddi00i000bddd00001i01dd1133i00i000lddd000K1100000000i00i00001d110011300000000i00100331d100003300000010i001s03t1d1000031111100hki0011111ddd1BB1110S01hh11100m0000aaa0000110001001d100m000000000001100e1001d100m0aaa000aaa0110d11001111111ddddddddd116
|
||||
4
|
||||
7
|
||||
11111111111111111111111111ddddddddd0S00ddddddddddd1ddddaaaaa000000ddddddddd1ddd00S000000e0ddd0dddddd1dd000000ddddddd00000dddd1daaaa00dd11100S00S000ddd10000000d00000000000S00dd10K000h0d00001100000000dd1111000ddd000000S0d0h00dd1ddd000dd000dd000ddd000dd1dddhhdd000ddddddddd000dd1ddb00S0000100000dd0000dd1dtb00000011s000000000ddd111111d11111111111111dddd6
|
||||
13
|
||||
10
|
||||
1
|
|
@ -1,4 +1,4 @@
|
|||
11111dddd100d110111111331000000000000d1d0000dd10s0111d00000000K1d10000d11111ddddd11ddhh1dddd000dddd11100Sh00dd00000dd00000001i0000000dd000000d0000S001i01100d0dd00d000dd0000001i0d00Sd0dd00dd10ddhh00l01i0ddddd0dd00ddi0d00000001iBBBdd0011aaddi0d0S00d0011000dd000300ddi0d0000d00110mmdd000d00ddi0dd00dd0011emtdddddd00ddi0ddddddkk1111111111100111Bdddd110016
|
||||
14
|
||||
11111111t133111111100011111111111133311111110K01111100000100111111111000111110s00010i11111100000001111d110K10i11111d000000011111110K10i1111a001BBBBB11110000010i111d0a010000011110000010i11a03011d0ddd1111001ddd0i1d0a0d110000011110000000i0a30111100e00111100000k0130ad11110aa001111dd000001031111111ddd11111111111B1001111111aaa11111111111010011111110001116
|
||||
13
|
||||
10
|
||||
1
|
|
@ -1,4 +1,4 @@
|
|||
111111110011ddd111111111110000001000S000S0d000000110000001000000000d0000s0111mmm101aaa000000d00BBB31100m01010a0000000d00B0Bb1100m01h10a00dKdhi0i0BBB011d0m01h10a00d0d00i00B0B011d0001h10000dSd00i00d00011d00d1h10000ddd00iBBd0t01h000d101dddd11100000d000h1000d1011111111331111111130000100000ddd000000100003000110000000000000k10e00111111110011111ddd11111116
|
||||
8
|
||||
10
|
||||
i011100dd1111dddm111ddmd1i01d1000000010S0011100S01i01d100000001000000000001i01d1cc111001hh1c11111001i01ddddddi00i000bddd00001i01dd1133i00i000lddd000K1100000000i00i00001d110011300000000i00100331d100003300000010i001s03t1d1000031111100hki0011111ddd1BB1110S01hh11100m0000aaa0000110001001d100m000000000001100e1001d100m0aaa000aaa0110d11001111111ddddddddd116
|
||||
4
|
||||
7
|
||||
1
|
|
@ -1,4 +1,4 @@
|
|||
1333111111111111iiii11111i000d1iii1iiii000000d0001i0000iiii1iiii000000d0e0ii000000001iii1000000d000ii000000001iid1aaa0000000ii00S000000000000a000S000i1t000K00000S0000i1rr1iid111iiii1ii1rrr1iiid000000i10k00000000000000000i000i10000000000000000000i000i1333rrii11iiiirriii11000i100000000000000000000000i10s0000000000000000000S011333iiirriirriii111iiii116
|
||||
8
|
||||
11111dddd100d110111111331000000000000d1d0000dd10s0111d00000000K1d10000d11111ddddd11ddhh1dddd000dddd11100Sh00dd00000dd00000001i0000000dd000000d0000S001i01100d0dd00d000dd0000001i0d00Sd0dd00dd10ddhh00l01i0ddddd0dd00ddi0d00000001iBBBdd0011aaddi0d0S00d0011000dd000300ddi0d0000d00110mmdd000d00ddi0dd00dd0011emtdddddd00ddi0ddddddkk1111111111100111Bdddd110016
|
||||
14
|
||||
10
|
||||
1
|
|
@ -1,4 +1,4 @@
|
|||
1dddddd1001111111111111110000000000111110000000000000000l0001100c00000000001aaaaaaa111100c00000000011dddddddddd1001aaaaaaaaa11cccccccccc1001ddddddddd1000000000001331000000aa000000000000s10e1k0000000001ccccccccc111111111113311100000000011001000000000110000000001100b0000000001100000000011t0b00000000011000K0000011111aaaaaaaaa1111111110011111ddddddddd16
|
||||
13
|
||||
2
|
||||
1111d1d1111111111111111111e01010111100000s01d000d1100001011110001ddd1d000d11d00000111100011111d0k0d11d0d0000001000000000000011d0d0d0000100000000000001111ddd11001000000t0000001100000000011111dd1dd1133110000000001000aaad1111001100111dd111000000d000000110000000003000d00d000000110000000003000d00000d00011000d000003000d00K00d000111111111111111111111111117
|
||||
8
|
||||
10
|
||||
1
|
|
@ -1,4 +1,4 @@
|
|||
1111d1d1111111111111111111e01010111100000s01d000d1100001011110001ddd1d000d11d00000111100011111d0k0d11d0d0000001000000000000011d0d0d0000100000000000001111ddd11001000000t0000001100000000011111dd1dd1133110000000001000aaad1111001100111dd111000000d000000110000000003000d00d000000110000000003000d00000d00011000d000003000d00K00d000111111111111111111111111117
|
||||
111111110011ddd111111111110000001000S000S0d000000110000001000000000d0000s0111mmm101aaa000000d00BBB31100m01010a0000000d00B0Bb1100m01h10a00dKdhi0i0BBB011d0m01h10a00d0d00i00B0B011d0001h10000dSd00i00d00011d00d1h10000ddd00iBBd0t01h000d101dddd11100000d000h1000d1011111111331111111130000100000ddd000000100003000110000000000000k10e00111111110011111ddd11111116
|
||||
8
|
||||
10
|
||||
1
|
|
@ -1,4 +1,4 @@
|
|||
11001111111001111111111111000111dddd000000000100013000111dddd00000000010003300000000dd11111000010e03100000000dd03a01000011111111110000dd03a01000000001100s1dd00ddt3a0100000000110001dd00dd1110100000000110001dd0Kdd00001ddd000ddd10001dd00dd00001111100ddd10001dd00dd00001000000ddd30001dd0000000010k000000330001dd0000000010000000031d001111111001111111111117
|
||||
1dddddd1001111111111111110000000000111110000000000000000l0001100c00000000001aaaaaaa111100c00000000011dddddddddd1001aaaaaaaaa11cccccccccc1001ddddddddd1000000000001331000000aa000000000000s10e1k0000000001ccccccccc111111111113311100000000011001000000000110000000001100b0000000001100000000011t0b00000000011000K0000011111aaaaaaaaa1111111110011111ddddddddd16
|
||||
13
|
||||
10
|
||||
2
|
||||
1
|
|
@ -1,4 +1,4 @@
|
|||
000000000000000000000000000000000000000000000000t000000000000000000000000000011dd111111111111111110000100000100000010000001000011cc001s0000d00000001000010000e111dd0100000dd100001001111000d0000000dd100001000001000111d000ddd1000010000000000000000ddd1000011111111111d111B11111000000000000000000000000000000000000000000000000000000000000000000000000000006
|
||||
11001111111001111111111111000111dddd000000000100013000111dddd00000000010003300000000dd11111000010e03100000000dd03a01000011111111110000dd03a01000000001100s1dd00ddt3a0100000000110001dd00dd1110100000000110001dd0Kdd00001ddd000ddd10001dd00dd00001111100ddd10001dd00dd00001000000ddd30001dd0000000010k000000330001dd0000000010000000031d001111111001111111111117
|
||||
13
|
||||
6
|
||||
10
|
||||
1
|
|
@ -1,4 +1,4 @@
|
|||
10001011111011111111111111000101dd10001111dddd11110000101dd10001000000000001111101dd1aaa1000ccccddd110s00010013331000000000011dddd110010001mmmdd00000100000000010e010t0dd00000011111100011111d1dddddd1111k00000001d000111001111111111111101d00000000000111000010000100000000000000010K010000100011100000011110001000010001110000dd11110001011111011111111111117
|
||||
5
|
||||
9
|
||||
000000000000000000000000000000000000000000000000t000000000000000000000000000011dd111111111111111110000100000100000010000001000011cc001s0000d00000001000010000e111dd0100000dd100001001111000d0000000dd100001000001000111d000ddd1000010000000000000000ddd1000011111111111d111B11111000000000000000000000000000000000000000000000000000000000000000000000000000006
|
||||
13
|
||||
6
|
||||
1
|
|
@ -1,4 +1,4 @@
|
|||
dddddddddddddddddddddddddBBBBBBBBBBBBBBBBBBBBBBBBB100001kk10011111dt0a000011000010010010000d11a00001100001BB100100000000000013000000000010001110000000300000000001aaaaaa0000000111111000001000000001111110dd00000001000000001000110000000a001BBBd00a0100013000000000010001000010003300s000000010K0100001e003aaBBBBBBBBBBBBBBBBBBBaaaaddddddddddddddddddddddddd6
|
||||
1ddddddddddd11dddddddddd11dddddddddd00000dd3aaa11i1dd111100000000000030000i1dd000000000001110003000i1d000001111100K000003000i1d00000S00k0000000003aBB110s000100000ddd011103atl11111331ddddddddddddddd1111ddd001dddddddd11d0S0ddd11ddd00d1dd11d000300000dd11ddd000000000000300000dd11dddaaa00000000d3S00e0dd11dddddd00S0d111d3d000ddd11ddddddddddddddddddddddd16
|
||||
13
|
||||
10
|
||||
1
|
|
@ -1,4 +1,4 @@
|
|||
00000ddddddd100000000000011111111111111111110011111000000dd1111ddd0K10000b1100111000000100000100000110000100000010000010010011000k111dd101dd00d10000011000110000001000001BBBB011000100011dd1000001dddd01100010ddd1dd1d00dd1011001133310ddd1dd1BBBBB1t00001100000ddd1dd1000001ddd1111s0000ddd1dd10000011111111BBB111aaaaa110001111111100000000000e10000000000006
|
||||
13
|
||||
10
|
||||
10001011111011111111111111000101dd10001111dddd11110000101dd10001000000000001111101dd1aaa1000ccccddd110s00010013331000000000011dddd110010001mmmdd00000100000000010e010t0dd00000011111100011111d1dddddd1111k00000001d000111001111111111111101d00000000000111000010000100000000000000010K010000100011100000011110001000010001110000dd11110001011111011111111111117
|
||||
5
|
||||
9
|
||||
1
|
|
@ -1,6 +1,8 @@
|
|||
#pragma once
|
||||
|
||||
char collide(int x, int y, char level[], char block);
|
||||
char collide_gravity(int x, int y, char level[], char gravity, char block);
|
||||
char collide_solid_gravity(int x, int y, char level[], char gravity);
|
||||
char collide_solid(int x, int y, char level[]);
|
||||
char collide_dead(int x, int y, char level[]);
|
||||
char collide_point(int x, int y, char level[], char block);
|
||||
|
|
|
@ -7,20 +7,27 @@
|
|||
char collide(int x, int y, char level[],
|
||||
char block) // detect if player is in a block
|
||||
{
|
||||
if ((level[(int)(x / TILE_HEIGHT) +
|
||||
(int)((y + PLAYER_HEIGHT) / TILE_HEIGHT) * LEVEL_WIDTH] ==
|
||||
block ||
|
||||
level[(int)((x + PLAYER_HEIGHT) / TILE_HEIGHT) +
|
||||
(int)((y + PLAYER_HEIGHT) / TILE_HEIGHT) * LEVEL_WIDTH] ==
|
||||
block ||
|
||||
level[(int)(x / TILE_HEIGHT) +
|
||||
(int)((y / TILE_HEIGHT) * LEVEL_WIDTH)] == block ||
|
||||
level[(int)((x + PLAYER_HEIGHT) / TILE_HEIGHT) +
|
||||
(int)((y / TILE_HEIGHT) * LEVEL_WIDTH)] == block))
|
||||
if(collide_point(x, y, level, block) ||
|
||||
collide_point(x + PLAYER_HEIGHT, y, level, block) ||
|
||||
collide_point(x, y + PLAYER_HEIGHT, level, block) ||
|
||||
collide_point(x + PLAYER_HEIGHT, y + PLAYER_HEIGHT, level, block))
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
char collide_gravity(int x, int y, char level[], char gravity, char block) {
|
||||
if(gravity == 1) {
|
||||
if(collide_point(x, y + PLAYER_HEIGHT, level, block) ||
|
||||
collide_point(x + PLAYER_HEIGHT, y + PLAYER_HEIGHT, level, block))
|
||||
return 1;
|
||||
} else {
|
||||
if(collide_point(x, y, level, block) ||
|
||||
collide_point(x + PLAYER_HEIGHT, y, level, block))
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
char collide_solid(int x, int y, char level[])
|
||||
{
|
||||
return collide(x, y, level, '1') || collide(x, y, level, '3') ||
|
||||
|
@ -30,6 +37,15 @@ char collide_solid(int x, int y, char level[])
|
|||
collide(x, y, level, 'r');
|
||||
}
|
||||
|
||||
char collide_solid_gravity(int x, int y, char level[], char gravity)
|
||||
{
|
||||
return collide_gravity(x, y, level, gravity, '1') || collide_gravity(x, y, level, gravity, '3') ||
|
||||
collide_gravity(x, y, level, gravity, '4') || collide_gravity(x, y, level, gravity, 'c') ||
|
||||
collide_gravity(x, y, level, gravity, 'C') || collide_gravity(x, y, level, gravity, 'B') ||
|
||||
collide_gravity(x, y, level, gravity, 'i') || collide_gravity(x, y, level, gravity, 'H') ||
|
||||
collide_gravity(x, y, level, gravity, 'r');
|
||||
}
|
||||
|
||||
char collide_dead(int x, int y, char level[])
|
||||
{
|
||||
return collide_point(x + DEAD_COLLISION, y + DEAD_COLLISION, level,
|
||||
|
|
|
@ -169,7 +169,8 @@ static void game(int *id_level, char mode, char *type)
|
|||
coin);
|
||||
if (check_nbswitch)
|
||||
draw_nbswitch(nbswitch);
|
||||
dprint(330, 0, C_RED, "%d", (int)(hspd * 100));
|
||||
dprint(330, 0, C_RED, "%d", collide_solid(player_x, player_y - 1, level));
|
||||
dprint(350, 0, C_RED, "%d", collide_solid(player_x, player_y + 1, level));
|
||||
dupdate();
|
||||
if (keydown(KEY_VARS) && usb_is_open())
|
||||
usb_fxlink_screenshot(1);
|
||||
|
@ -208,10 +209,8 @@ static void game(int *id_level, char mode, char *type)
|
|||
|
||||
// Action key
|
||||
if (keydown(KEY_SHIFT) && !check && nbswitch > 0 &&
|
||||
((collide_solid(player_x, player_y - 1, level) &&
|
||||
gravity == -1) ||
|
||||
(collide_solid(player_x, player_y + 1, level) &&
|
||||
gravity))) {
|
||||
(collide_solid_gravity(player_x, player_y - 1, level, gravity) ||
|
||||
collide_solid_gravity(player_x, player_y + 1, level, gravity))) {
|
||||
vspd = 1;
|
||||
if (gravity == -1)
|
||||
gravity = 1;
|
||||
|
|
Loading…
Reference in New Issue