Raycasting tutorial (1)

Problem (1)

CUB3D Structure

CUB3D의 전체적인 구조를 먼저 그리고 시작하려 합니다. CUB3D의 대략적인 구조는 다음과 같습니다.

PDF에 인자를 하나 받는 것으로 명시되어 있으니 인자가 하나가 아닐 때를 다루어야 합니다. 저는 이를 막아야 한다고 생각했습니다. 그래서 인자가 하나가 아닐 때 에러 메시지를 보여주고 프로그램이 종료되도록 했습니다.

#include "cub3d.h"
#include "mlx/mlx.h"

void	show_error(char *error_message)
{
	write(2, "\\033[0;35mError\\n", ft_strlen("\\033[0;35mError\\n"));
	write(2, error_message, ft_strlen(error_message));
	write(2, "\\033[0;0m", ft_strlen("\\033[0;0m"));
	return ;
}

int	main(int argc, char **argv)
{
	char	*map_path;
	t_map	*map_info;

	if (argc != 2)
	{
		show_error("need one map file\\n");
		return (1);
	}
	map_path = parse_input(argv[1]);
	map_info = load_file(map_path);
	execute_window(map_info); 
	return (0);
}

Parse input

프로그램이 인자로 받은 .cub 파일 이름을 사용해 map_path를 만들어야 합니다. 그리고 그 map_path로 파일을 open 할 수 있는지를 확인할 차례입니다. 다음과 같은 단계를 거쳐야합니다.