Glue & better ice texture
This commit is contained in:
parent
b2938c5194
commit
1287fef626
Binary file not shown.
After Width: | Height: | Size: 125 B |
Binary file not shown.
Before Width: | Height: | Size: 123 B After Width: | Height: | Size: 181 B |
|
@ -4,6 +4,7 @@
|
|||
-- v spike
|
||||
-- ^ elevator
|
||||
-- ~ ice
|
||||
-- # glue
|
||||
-- j jump upgrade
|
||||
--
|
||||
-- level id format : YYXX with YY and XX being the Y and X position on the map
|
||||
|
@ -78,9 +79,9 @@ levels = {[5049] = [[
|
|||
-00......................00-
|
||||
-00......................00-
|
||||
-00......................00-
|
||||
-00......................00-
|
||||
-00...........000000000vv00-
|
||||
-00v.....................00-
|
||||
-0000000....000000000000000-
|
||||
-0000000....000#######00000-
|
||||
-0000000....000000000000000-
|
||||
----------------------------
|
||||
]],
|
||||
|
|
BIN
platform.g3a
BIN
platform.g3a
Binary file not shown.
|
@ -18,5 +18,6 @@ char collide_solid(int x, int y, char level[])
|
|||
{
|
||||
return (collide(x, y, level, '0') ||
|
||||
collide(x, y, level, '^') ||
|
||||
collide(x, y, level, '~'));
|
||||
collide(x, y, level, '~') ||
|
||||
collide(x, y, level, '#'));
|
||||
}
|
||||
|
|
|
@ -25,7 +25,8 @@ void draw_level(char level[], char upgrades[])
|
|||
extern image_t img_ground; //ground texture, 16x16
|
||||
extern image_t img_spike; //spike texture, 16x16
|
||||
extern image_t img_elevator; //elevator texture, 16x16
|
||||
extern image_t img_ice; //ice texture, 16x4
|
||||
extern image_t img_ice; //ice texture, 16x8
|
||||
extern image_t img_glue; //glue texture, 16x8
|
||||
extern image_t img_jitem; //jump item texture, 16x16
|
||||
unsigned int i = 0;
|
||||
unsigned int x = 0;
|
||||
|
@ -47,6 +48,10 @@ void draw_level(char level[], char upgrades[])
|
|||
dimage(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y, &img_ground);
|
||||
dimage(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y, &img_ice);
|
||||
break;
|
||||
case '#':
|
||||
dimage(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y, &img_ground);
|
||||
dimage(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y, &img_glue);
|
||||
break;
|
||||
case 'j':
|
||||
if (!upgrades[0])
|
||||
dimage(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y, &img_jitem);
|
||||
|
|
23
src/main.c
23
src/main.c
|
@ -6,7 +6,7 @@
|
|||
#include "levels.h"
|
||||
#include "player.h"
|
||||
|
||||
#define MAX_HSPD 2.0
|
||||
#define MAX_HSPD 2.5
|
||||
#define ACCELERATION 1
|
||||
#define DECELERATION 0.5
|
||||
#define MIN_VSPD -12.0
|
||||
|
@ -93,18 +93,21 @@ int main(void)
|
|||
if (hspd < 0) hspd = 0;
|
||||
}
|
||||
trunc_hspd = hspd * direction;
|
||||
if (!collide_solid(player_x + trunc_hspd, player_y, level))
|
||||
if (!collide(player_x, player_y + 1, level, '#'))
|
||||
{
|
||||
player_x += trunc_hspd;
|
||||
}
|
||||
else
|
||||
{
|
||||
int sign_hspd = sgn(trunc_hspd);
|
||||
while (!collide_solid(player_x + sign_hspd, player_y, level))
|
||||
if (!collide_solid(player_x + trunc_hspd, player_y, level))
|
||||
{
|
||||
player_x += sign_hspd;
|
||||
player_x += trunc_hspd;
|
||||
}
|
||||
else
|
||||
{
|
||||
int sign_hspd = sgn(trunc_hspd);
|
||||
while (!collide_solid(player_x + sign_hspd, player_y, level))
|
||||
{
|
||||
player_x += sign_hspd;
|
||||
}
|
||||
hspd = 0;
|
||||
}
|
||||
hspd = 0;
|
||||
}
|
||||
}
|
||||
//ground detection
|
||||
|
|
Loading…
Reference in New Issue