fix one bug + arrange level

This commit is contained in:
Tituya 2021-06-16 03:28:04 +02:00
parent 1058fccb15
commit 238549a5ad
22 changed files with 73 additions and 55 deletions

View File

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

View File

@ -1,4 +1,4 @@
11111111t133111111100011111111111133311111110K01111100000100111111111000111110s00010i11111100000001111d110K10i11111d000000011111110K10i1111a001BBBBB11110000010i111d0a010000011110000010i11a03011d0ddd1111001ddd0i1d0a0d110000011110000000i0a30111100e00111100000k0130ad11110aa001111dd000001031111111ddd11111111111B1001111111aaa11111111111010011111110001116
dddddddddddddddddddddddddBBBBBBBBBBBBBBBBBBBBBBBBB100001kk10011111dt0a000011000010010010000d11a00001100001BB100100000000000013000000000010001110000000300000000001aaaaaa0000000111111000001000000001111110dd00000001000000001000110000000a001BBBd00a0100013000000000010001000010003300s000000010K0100001e003aaBBBBBBBBBBBBBBBBBBBaaaaddddddddddddddddddddddddd6
13
10
1

View File

@ -1,4 +1,4 @@
1ddddddddddd11dddddddddd11dddddddddd00000dd3aaa11i1dd111100000000000030000i1dd000000000001110003000i1d000001111100K000003000i1d00000S00k0000000003aBB110s000100000ddd011103atl11111331ddddddddddddddd1111ddd001dddddddd11d0S0ddd11ddd00d1dd11d000300000dd11ddd000000000000300000dd11dddaaa00000000d3S00e0dd11dddddd00S0d111d3d000ddd11ddddddddddddddddddddddd16
00000ddddddd100000000000011111111111111111110011111000000dd1111ddd0K10000b1100111000000100000100000110000100000010000010010011000k111dd101dd00d10000011000110000001000001BBBB011000100011dd1000001dddd01100010ddd1dd1d00dd1011001133310ddd1dd1BBBBB1t00001100000ddd1dd1000001ddd1111s0000ddd1dd10000011111111BBB111aaaaa110001111111100000000000e10000000000006
13
10
1

View File

@ -1,4 +1,4 @@
1111111111010001dd11111110000001000013331001000000000000100t01000h0010000001111iB111111000h0013311111e00ik11d111000300300000d10ddi011d0010003003000s0d10aai01000010001hh1hh11111000i01h1h1100010010000011dd0i000000h00010010001a11aa01dd0dd110001001000h0110001dd1d1110S0100100010110000S0S0001ddd100h0001Kd100000S0S001111100h00011111111dddd10h00011111111116
1111111111111ddd11iK1d00100000d111000000011it1d00000000d100000000011i31110011100d13331110e011ihhh11100000d100011111111i00000000000d100000011111i00111011100d1000000000011000s111111111000000000011dd0001hk001111i00Sddd001dddd00hh0000001i000111000aad1ddhddd0000000001110000001111111dd0000000111000000001111111dd000011110000000001111111111111111ddd13100017
13
10
1

4
editor/levels/13.lvl Executable file → Normal file
View File

@ -1,4 +1,4 @@
11111111111111111111111111ddddddddd0S00ddddddddddd1ddddaaaaa000000ddddddddd1ddd00S000000e0ddd0dddddd1dd000000ddddddd00000dddd1daaaa00dd11100S00S000ddd10000000d00000000000S00dd10K000h0d00001100000000dd1111000ddd000000S0d0h00dd1ddd000dd000dd000ddd000dd1dddhhdd000ddddddddd000dd1ddb00S0000100000dd0000dd1dtb00000011s000000000ddd111111d11111111111111dddd6
13
1333111111111111iiii11111i000d1iii1iiii000000d0001i0000iiii1iiii000000d0e0ii000000001iii1000000d000ii000000001iid1aaa0000000ii00S000000000000a000S000i1t000K00000S0000i1rr1iid111iiii1ii1rrr1iiid000000i10k00000000000000000i000i10000000000000000000i000i1333rrii11iiiirriii11000i100000000000000000000000i10s0000000000000000000S011333iiirriirriii111iiii116
8
10
1

View File

@ -1,4 +1,4 @@
1111111111111ddd11iK1d00100000d111000000011it1d00000000d100000000011i31110011100d13331110e011ihhh11100000d100011111111i00000000000d100000011111i00111011100d1000000000011000s111111111000000000011dd0001hk001111i00Sddd001dddd00hh0000001i000111000aad1ddhddd0000000001110000001111111dd0000000111000000001111111dd000011110000000001111111111111111ddd13100017
1111111111010001dd11111110000001000013331001000000000000100t01000h0010000001111iB111111000h0013311111e00ik11d111000300300000d10ddi011d0010003003000s0d10aai01000010001hh1hh11111000i01h1h1100010010000011dd0i000000h00010010001a11aa01dd0dd110001001000h0110001dd1d1110S0100100010110000S0S0001ddd100h0001Kd100000S0S001111100h00011111111dddd10h00011111111116
13
10
1

View File

@ -1,4 +1,4 @@
i011100dd1111dddm111ddmd1i01d1000000010S0011100S01i01d100000001000000000001i01d1cc111001hh1c11111001i01ddddddi00i000bddd00001i01dd1133i00i000lddd000K1100000000i00i00001d110011300000000i00100331d100003300000010i001s03t1d1000031111100hki0011111ddd1BB1110S01hh11100m0000aaa0000110001001d100m000000000001100e1001d100m0aaa000aaa0110d11001111111ddddddddd116
4
7
11111111111111111111111111ddddddddd0S00ddddddddddd1ddddaaaaa000000ddddddddd1ddd00S000000e0ddd0dddddd1dd000000ddddddd00000dddd1daaaa00dd11100S00S000ddd10000000d00000000000S00dd10K000h0d00001100000000dd1111000ddd000000S0d0h00dd1ddd000dd000dd000ddd000dd1dddhhdd000ddddddddd000dd1ddb00S0000100000dd0000dd1dtb00000011s000000000ddd111111d11111111111111dddd6
13
10
1

View File

@ -1,4 +1,4 @@
11111dddd100d110111111331000000000000d1d0000dd10s0111d00000000K1d10000d11111ddddd11ddhh1dddd000dddd11100Sh00dd00000dd00000001i0000000dd000000d0000S001i01100d0dd00d000dd0000001i0d00Sd0dd00dd10ddhh00l01i0ddddd0dd00ddi0d00000001iBBBdd0011aaddi0d0S00d0011000dd000300ddi0d0000d00110mmdd000d00ddi0dd00dd0011emtdddddd00ddi0ddddddkk1111111111100111Bdddd110016
14
11111111t133111111100011111111111133311111110K01111100000100111111111000111110s00010i11111100000001111d110K10i11111d000000011111110K10i1111a001BBBBB11110000010i111d0a010000011110000010i11a03011d0ddd1111001ddd0i1d0a0d110000011110000000i0a30111100e00111100000k0130ad11110aa001111dd000001031111111ddd11111111111B1001111111aaa11111111111010011111110001116
13
10
1

6
editor/levels/18.lvl Normal file → Executable file
View File

@ -1,4 +1,4 @@
111111110011ddd111111111110000001000S000S0d000000110000001000000000d0000s0111mmm101aaa000000d00BBB31100m01010a0000000d00B0Bb1100m01h10a00dKdhi0i0BBB011d0m01h10a00d0d00i00B0B011d0001h10000dSd00i00d00011d00d1h10000ddd00iBBd0t01h000d101dddd11100000d000h1000d1011111111331111111130000100000ddd000000100003000110000000000000k10e00111111110011111ddd11111116
8
10
i011100dd1111dddm111ddmd1i01d1000000010S0011100S01i01d100000001000000000001i01d1cc111001hh1c11111001i01ddddddi00i000bddd00001i01dd1133i00i000lddd000K1100000000i00i00001d110011300000000i00100331d100003300000010i001s03t1d1000031111100hki0011111ddd1BB1110S01hh11100m0000aaa0000110001001d100m000000000001100e1001d100m0aaa000aaa0110d11001111111ddddddddd116
4
7
1

4
editor/levels/19.lvl Normal file → Executable file
View File

@ -1,4 +1,4 @@
1333111111111111iiii11111i000d1iii1iiii000000d0001i0000iiii1iiii000000d0e0ii000000001iii1000000d000ii000000001iid1aaa0000000ii00S000000000000a000S000i1t000K00000S0000i1rr1iid111iiii1ii1rrr1iiid000000i10k00000000000000000i000i10000000000000000000i000i1333rrii11iiiirriii11000i100000000000000000000000i10s0000000000000000000S011333iiirriirriii111iiii116
8
11111dddd100d110111111331000000000000d1d0000dd10s0111d00000000K1d10000d11111ddddd11ddhh1dddd000dddd11100Sh00dd00000dd00000001i0000000dd000000d0000S001i01100d0dd00d000dd0000001i0d00Sd0dd00dd10ddhh00l01i0ddddd0dd00ddi0d00000001iBBBdd0011aaddi0d0S00d0011000dd000300ddi0d0000d00110mmdd000d00ddi0dd00dd0011emtdddddd00ddi0ddddddkk1111111111100111Bdddd110016
14
10
1

6
editor/levels/2.lvl Executable file → Normal file
View File

@ -1,4 +1,4 @@
1dddddd1001111111111111110000000000111110000000000000000l0001100c00000000001aaaaaaa111100c00000000011dddddddddd1001aaaaaaaaa11cccccccccc1001ddddddddd1000000000001331000000aa000000000000s10e1k0000000001ccccccccc111111111113311100000000011001000000000110000000001100b0000000001100000000011t0b00000000011000K0000011111aaaaaaaaa1111111110011111ddddddddd16
13
2
1111d1d1111111111111111111e01010111100000s01d000d1100001011110001ddd1d000d11d00000111100011111d0k0d11d0d0000001000000000000011d0d0d0000100000000000001111ddd11001000000t0000001100000000011111dd1dd1133110000000001000aaad1111001100111dd111000000d000000110000000003000d00d000000110000000003000d00000d00011000d000003000d00K00d000111111111111111111111111117
8
10
1

View File

@ -1,4 +1,4 @@
1111d1d1111111111111111111e01010111100000s01d000d1100001011110001ddd1d000d11d00000111100011111d0k0d11d0d0000001000000000000011d0d0d0000100000000000001111ddd11001000000t0000001100000000011111dd1dd1133110000000001000aaad1111001100111dd111000000d000000110000000003000d00d000000110000000003000d00000d00011000d000003000d00K00d000111111111111111111111111117
111111110011ddd111111111110000001000S000S0d000000110000001000000000d0000s0111mmm101aaa000000d00BBB31100m01010a0000000d00B0Bb1100m01h10a00dKdhi0i0BBB011d0m01h10a00d0d00i00B0B011d0001h10000dSd00i00d00011d00d1h10000ddd00iBBd0t01h000d101dddd11100000d000h1000d1011111111331111111130000100000ddd000000100003000110000000000000k10e00111111110011111ddd11111116
8
10
1

View File

@ -1,4 +1,4 @@
11001111111001111111111111000111dddd000000000100013000111dddd00000000010003300000000dd11111000010e03100000000dd03a01000011111111110000dd03a01000000001100s1dd00ddt3a0100000000110001dd00dd1110100000000110001dd0Kdd00001ddd000ddd10001dd00dd00001111100ddd10001dd00dd00001000000ddd30001dd0000000010k000000330001dd0000000010000000031d001111111001111111111117
1dddddd1001111111111111110000000000111110000000000000000l0001100c00000000001aaaaaaa111100c00000000011dddddddddd1001aaaaaaaaa11cccccccccc1001ddddddddd1000000000001331000000aa000000000000s10e1k0000000001ccccccccc111111111113311100000000011001000000000110000000001100b0000000001100000000011t0b00000000011000K0000011111aaaaaaaaa1111111110011111ddddddddd16
13
10
2
1

View File

@ -1,4 +1,4 @@
000000000000000000000000000000000000000000000000t000000000000000000000000000011dd111111111111111110000100000100000010000001000011cc001s0000d00000001000010000e111dd0100000dd100001001111000d0000000dd100001000001000111d000ddd1000010000000000000000ddd1000011111111111d111B11111000000000000000000000000000000000000000000000000000000000000000000000000000006
11001111111001111111111111000111dddd000000000100013000111dddd00000000010003300000000dd11111000010e03100000000dd03a01000011111111110000dd03a01000000001100s1dd00ddt3a0100000000110001dd00dd1110100000000110001dd0Kdd00001ddd000ddd10001dd00dd00001111100ddd10001dd00dd00001000000ddd30001dd0000000010k000000330001dd0000000010000000031d001111111001111111111117
13
6
10
1

View File

@ -1,4 +1,4 @@
10001011111011111111111111000101dd10001111dddd11110000101dd10001000000000001111101dd1aaa1000ccccddd110s00010013331000000000011dddd110010001mmmdd00000100000000010e010t0dd00000011111100011111d1dddddd1111k00000001d000111001111111111111101d00000000000111000010000100000000000000010K010000100011100000011110001000010001110000dd11110001011111011111111111117
5
9
000000000000000000000000000000000000000000000000t000000000000000000000000000011dd111111111111111110000100000100000010000001000011cc001s0000d00000001000010000e111dd0100000dd100001001111000d0000000dd100001000001000111d000ddd1000010000000000000000ddd1000011111111111d111B11111000000000000000000000000000000000000000000000000000000000000000000000000000006
13
6
1

View File

@ -1,4 +1,4 @@
dddddddddddddddddddddddddBBBBBBBBBBBBBBBBBBBBBBBBB100001kk10011111dt0a000011000010010010000d11a00001100001BB100100000000000013000000000010001110000000300000000001aaaaaa0000000111111000001000000001111110dd00000001000000001000110000000a001BBBd00a0100013000000000010001000010003300s000000010K0100001e003aaBBBBBBBBBBBBBBBBBBBaaaaddddddddddddddddddddddddd6
1ddddddddddd11dddddddddd11dddddddddd00000dd3aaa11i1dd111100000000000030000i1dd000000000001110003000i1d000001111100K000003000i1d00000S00k0000000003aBB110s000100000ddd011103atl11111331ddddddddddddddd1111ddd001dddddddd11d0S0ddd11ddd00d1dd11d000300000dd11ddd000000000000300000dd11dddaaa00000000d3S00e0dd11dddddd00S0d111d3d000ddd11ddddddddddddddddddddddd16
13
10
1

View File

@ -1,4 +1,4 @@
00000ddddddd100000000000011111111111111111110011111000000dd1111ddd0K10000b1100111000000100000100000110000100000010000010010011000k111dd101dd00d10000011000110000001000001BBBB011000100011dd1000001dddd01100010ddd1dd1d00dd1011001133310ddd1dd1BBBBB1t00001100000ddd1dd1000001ddd1111s0000ddd1dd10000011111111BBB111aaaaa110001111111100000000000e10000000000006
13
10
10001011111011111111111111000101dd10001111dddd11110000101dd10001000000000001111101dd1aaa1000ccccddd110s00010013331000000000011dddd110010001mmmdd00000100000000010e010t0dd00000011111100011111d1dddddd1111k00000001d000111001111111111111101d00000000000111000010000100000000000000010K010000100011100000011110001000010001110000dd11110001011111011111111111117
5
9
1

View File

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

View File

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

View File

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

View File

@ -1,20 +1,20 @@
5.91
8.25
8.76
5.80
3.52
5.80
3.58
8.62
6.81
6.23
8.62
7.65
9.62
6.04
6.23
8.35
6.93
10.78
5.39
8.35
6.04
17.95
7.45
10.53
17.95
9.54
6.93
8.25