unnamed-platformer/src/collide.c

15 lines
793 B
C

#define PLAYER_SIDES 11
char collide_with(int x, int y, char level[], char tile, unsigned int level_width)
{
if ((level[(int)(x/8) + (int)(y/8) * level_width] == tile) ||
(level[(int)(x/8) + (int)((y+PLAYER_SIDES)/8) * level_width] == tile) ||
(level[(int)((x+PLAYER_SIDES)/8) + (int)((y+PLAYER_SIDES)/8) * level_width] == tile) ||
(level[(int)((x+PLAYER_SIDES)/8) + (int)(y/8) * level_width] == tile) ||
(level[(int)(x/8) + (int)((y+PLAYER_SIDES/2)/8) * level_width] == tile) ||
(level[(int)((x+PLAYER_SIDES/2)/8) + (int)(y/8) * level_width] == tile) ||
(level[(int)((x+PLAYER_SIDES/2)/8) + (int)((y+PLAYER_SIDES)/8) * level_width] == tile) ||
(level[(int)((x+PLAYER_SIDES)/8) + (int)((y+PLAYER_SIDES/2)/8) * level_width] == tile)) return 1;
else return 0;
}