plr orientation at begining

This commit is contained in:
hugogogo
2022-05-04 00:55:47 +02:00
parent eb3b5c37a8
commit 3c76a8646a
13 changed files with 176 additions and 193 deletions

View File

@@ -1,33 +1,33 @@
#include "cube3d.h"
// tmp draw map
static void calcul_ray_end(t_rcast *rcast, t_vec *ray)
{
if (rcast->is_x)
{
ray->end.x = rcast->cell_x * rcast->cell;
if (rcast->ray_sign_x == 1)
ray->end.x += rcast->cell;
if (rcast->slope_x)
{
rcast->ratio = (double)(ray->end.x - ray->start.x);
rcast->ratio /= (double)rcast->slope_x;
ray->end.y = ray->start.y + (double)rcast->slope_y * rcast->ratio;
}
}
else
{
ray->end.y = rcast->cell_y * rcast->cell;
if (rcast->ray_sign_y == 1)
ray->end.y += rcast->cell;
if (rcast->slope_y)
{
rcast->ratio = (double)(ray->end.y - ray->start.y);
rcast->ratio /= (double)rcast->slope_y;
ray->end.x = ray->start.x + (double)rcast->slope_x * rcast->ratio;
}
}
}
// static void calcul_ray_end(t_rcast *rcast, t_vec *ray)
// {
// if (rcast->is_x)
// {
// ray->end.x = rcast->cell_x * rcast->cell;
// if (rcast->ray_sign_x == 1)
// ray->end.x += rcast->cell;
// if (rcast->slope_x)
// {
// rcast->ratio = (double)(ray->end.x - ray->start.x);
// rcast->ratio /= (double)rcast->slope_x;
// ray->end.y = ray->start.y + (double)rcast->slope_y * rcast->ratio;
// }
// }
// else
// {
// ray->end.y = rcast->cell_y * rcast->cell;
// if (rcast->ray_sign_y == 1)
// ray->end.y += rcast->cell;
// if (rcast->slope_y)
// {
// rcast->ratio = (double)(ray->end.y - ray->start.y);
// rcast->ratio /= (double)rcast->slope_y;
// ray->end.x = ray->start.x + (double)rcast->slope_x * rcast->ratio;
// }
// }
// }
// tmp end
static void calcul_img_column(t_game *game, t_rcast *rcast, t_wall *wall)
@@ -43,8 +43,8 @@ static void calcul_img_column(t_game *game, t_rcast *rcast, t_wall *wall)
tmp += game->plr.pos.y;
// tmp draw map
if (game->ray_activ)
printf("tmp:%i ", tmp);
// if (game->ray_activ)
// printf("tmp:%i ", tmp);
// tmp end
wall->posx = tmp % rcast->cell;
@@ -58,16 +58,16 @@ static void calcul_img_column(t_game *game, t_rcast *rcast, t_wall *wall)
tmp += game->plr.pos.x;
// tmp draw map
if (game->ray_activ)
printf("tmp:%i ", tmp);
// if (game->ray_activ)
// printf("tmp:%i ", tmp);
// tmp end
wall->posx = tmp % rcast->cell;
}
// tmp draw map
if (game->ray_activ)
printf("wall->posx:%i ", wall->posx);
// if (game->ray_activ)
// printf("wall->posx:%i ", wall->posx);
// tmp end
}
@@ -119,23 +119,23 @@ void raycast(t_game *game, t_rcast *rcast)
{
// tmp draw map
// rays
game->ray_activ = 0;
if (rcast->ray_nb == game->ray_highlight)
{
game->ray_activ = 1;
game->ray = ray;
}
// // rays
// game->ray_activ = 0;
// if (rcast->ray_nb == game->ray_highlight)
// {
// game->ray_activ = 1;
// game->ray = ray;
// }
// tmp end
ray_intersect_wall(game, rcast, &ray);
// tmp draw map
calcul_ray_end(rcast, &ray);
if (game->ray_activ)
draw_line(&game->map_img, &ray, 0x00FF00FF);
else if (rcast->ray_nb % 10 == 0)
draw_line(&game->map_img, &ray, 0x00FFFFFF);
// calcul_ray_end(rcast, &ray);
// if (game->ray_activ)
// draw_line(&game->map_img, &ray, 0x00FF00FF);
// else if (rcast->ray_nb % 10 == 0)
// draw_line(&game->map_img, &ray, 0x00FFFFFF);
// tmp end
calcul_wall(rcast);
@@ -145,7 +145,7 @@ void raycast(t_game *game, t_rcast *rcast)
}
// tmp draw map
printf("\n\n");
// printf("\n\n");
// tmp end
}