[so_long] 6. 게임 종료

aqualung·2023년 1월 27일

🖥 so_long

1. 이벤트 체크

게임은 두 가지 경우에 종료되도록 하였습니다.

  1. 적과 충돌
  2. 수집품을 모두 모와 탈출
void	event_checker(t_game *game)
{
	int	p_x;
	int	p_y;
	int	r_x;
	int	r_y;

	p_x = game->player.x;
	p_y = game->player.y; // 플레이어의 좌표
	r_x = game->enemy.x;
	r_y = game->enemy.y; // 적의 좌표
	if (game->map.pos[p_y][p_x] == 'E')
    // 플레이어가 탈출구에 있다면
	{
		printf("%s\n", "Escape.");
		exit(0);
	}
	else if (p_x == r_x && p_y == r_y)
    // 플레이어와 적이 같은 위치라면 충돌로 판단
	{
		printf("%s\n", "Collision.");
		exit(0);
	}
}

플레이어와 적의 위치가 같다면 충돌한 것으로 판단합니다. 충돌 시 게임은 종료됩니다.

수집품(코인)도 같은 방법으로 충돌했다면 수집하였다고 카운트해줍니다.

코인을 모두 모은 상태로 탈출구에 도달하면 게임이 종료됩니다.

0개의 댓글