1
0

🏗️」 wip: Added line size calculus

This commit is contained in:
2024-10-13 17:49:01 +02:00
parent 24da8e8c27
commit da17af41b1
6 changed files with 55 additions and 11 deletions

View File

@ -6,7 +6,7 @@
# By: adjoly <adjoly@student.42angouleme.fr> +#+ +:+ +#+ # # By: adjoly <adjoly@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ # # +#+#+#+#+#+ +#+ #
# Created: 2024/10/07 16:02:18 by adjoly #+# #+# # # Created: 2024/10/07 16:02:18 by adjoly #+# #+# #
# Updated: 2024/10/08 21:44:52 by adjoly ### ########.fr # # Updated: 2024/10/08 22:06:26 by adjoly ### ########.fr #
# # # #
# **************************************************************************** # # **************************************************************************** #
@ -14,7 +14,7 @@ SHELL = bash
NAME = cub3D NAME = cub3D
CC = clang CC = gcc
OBJSDIR = obj/ OBJSDIR = obj/

View File

@ -6,7 +6,7 @@
/* By: adjoly <adjoly@student.42angouleme.fr> +#+ +:+ +#+ */ /* By: adjoly <adjoly@student.42angouleme.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2024/10/04 14:04:10 by adjoly #+# #+# */ /* Created: 2024/10/04 14:04:10 by adjoly #+# #+# */
/* Updated: 2024/10/07 17:42:00 by adjoly ### ########.fr */ /* Updated: 2024/10/13 17:44:12 by adjoly ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -21,7 +21,7 @@
* @param player The address of the t_player struct * @param player The address of the t_player struct
* @param dda The address of the t_dda struct * @param dda The address of the t_dda struct
*/ */
void get_ray_angle(t_player *player, t_dda (*dda)[800]); void get_ray_angle(t_player *player, t_dda (*dda)[800]);
/** /**
* @brief Function used to setup all the dda variable prior to casting * @brief Function used to setup all the dda variable prior to casting
@ -31,7 +31,7 @@ void get_ray_angle(t_player *player, t_dda (*dda)[800]);
* @param dda The address of the t_dda struct * @param dda The address of the t_dda struct
* *
*/ */
void setup_dda(t_dda (*dda)[800], t_player *player); void setup_dda(t_dda (*dda)[800], t_player *player);
/** /**
* @brief Function used to cast all the rays * @brief Function used to cast all the rays
@ -40,6 +40,21 @@ void setup_dda(t_dda (*dda)[800], t_player *player);
* @param map The map as a char ** * @param map The map as a char **
* @param map_coord The coordinate of the player on the map_grid * @param map_coord The coordinate of the player on the map_grid
*/ */
void while_dda(t_dda (*dda)[800], char **map, t_coord map_coord); void while_dda(t_dda (*dda)[800], char **map, t_coord map_coord);
/// NEED TO COMBINE THOSE IF NOT USEFULL TO SEPARATE
/**
* @brief Function used to get the distance from the player of all rays
*
* @param dda The address of the t_dda struct
*/
float *dist_dda(t_dda dda[WINDOW_X / RAY_SIZE]);
/**
* @brief Function used to get the size of the line to be printed on the screen
*
* @param dda The array of the all the distance to the wall of the rays
*/
uint16_t *line_dda(float *wall_dist);
#endif #endif

View File

@ -6,7 +6,7 @@
/* By: adjoly <adjoly@student.42angouleme.fr> +#+ +:+ +#+ */ /* By: adjoly <adjoly@student.42angouleme.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2024/10/07 16:55:09 by adjoly #+# #+# */ /* Created: 2024/10/07 16:55:09 by adjoly #+# #+# */
/* Updated: 2024/10/08 13:59:15 by adjoly ### ########.fr */ /* Updated: 2024/10/13 17:27:17 by adjoly ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -18,18 +18,18 @@ void dda(t_player *player, char **map)
t_dda dda[WINDOW_X / RAY_SIZE]; t_dda dda[WINDOW_X / RAY_SIZE];
t_coord map_coord; t_coord map_coord;
float *wall_dist; float *wall_dist;
float *line_size;
setup_dda(&dda, player); setup_dda(&dda, player);
map_coord.x = player->coords.x - player->coords.x % MAP_CHUNK_SIZE; map_coord.x = player->coords.x - player->coords.x % MAP_CHUNK_SIZE;
map_coord.y = player->coords.y - player->coords.y % MAP_CHUNK_SIZE; map_coord.y = player->coords.y - player->coords.y % MAP_CHUNK_SIZE;
while_dda(&dda, map, map_coord); while_dda(&dda, map, map_coord);
wall_dist = dist_dda(dda); wall_dist = dist_dda(dda);
} }
/** /**
* calculate size on screen * calculate size on screen
* screen_height / per_wall_dist * screen_height / per_wall_dist
* * (and get orientation)
* print on screen
*
*/ */

View File

@ -0,0 +1,29 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* line_dda.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: adjoly <adjoly@student.42angouleme.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/10/13 17:27:44 by adjoly #+# #+# */
/* Updated: 2024/10/13 17:36:05 by adjoly ### ########.fr */
/* */
/* ************************************************************************** */
#include "game/settings.h"
uint16_t *line_dda(t_dda (*dda)[WINDOW_X / RAY_SIZE], float *wall_dist)
{
uint16_t i;
uint16_t *line_size;
(void)dda;
i = 0;
line_size = malloc(WINDOW_X / RAY_SIZE * sizeof(uint16_t));
while (wall_dist[i])
{
line_size[i] = (WINDOW_Y / wall_dist[i]);
i++;
}
return (line_size);
}