don't draw lines out of bounds

This commit is contained in:
Quinten Mennen 2025-04-17 20:04:51 +02:00
parent 03223ca561
commit 5d19de8673
2 changed files with 12 additions and 5 deletions

View File

@ -6,13 +6,18 @@
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2025/04/17 17:49:01 by qmennen #+# #+# */
/* Updated: 2025/04/17 18:04:30 by qmennen ### ########.fr */
/* Updated: 2025/04/17 20:04:01 by qmennen ### ########.fr */
/* */
/* ************************************************************************** */
#include "line.h"
#include "MLX42.h"
static int check_bounds(t_screen *screen, t_vec2 *point)
{
return (point->x >= 0 && point->x < screen->width && point->y > 0 && point->y < screen->height);
}
void line_low(t_screen *screen, t_vec2 start, t_vec2 end, unsigned int color)
{
int delta;
@ -29,6 +34,7 @@ void line_low(t_screen *screen, t_vec2 start, t_vec2 end, unsigned int color)
current = start;
while (current.x <= end.x)
{
if (check_bounds(screen, &current))
mlx_put_pixel(screen->img, (int)current.x, (int)current.y, color);
if (delta > 0)
{
@ -56,6 +62,7 @@ void line_high(t_screen *screen, t_vec2 start, t_vec2 end, unsigned int color)
current = start;
while (current.y <= end.y)
{
if (check_bounds(screen, &current))
mlx_put_pixel(screen->img, (int)current.x, (int)current.y, color);
if (delta > 0)
{

View File

@ -6,7 +6,7 @@
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2025/04/15 18:53:19 by qmennen #+# #+# */
/* Updated: 2025/04/17 19:55:43 by qmennen ### ########.fr */
/* Updated: 2025/04/17 20:04:25 by qmennen ### ########.fr */
/* */
/* ************************************************************************** */
@ -24,7 +24,7 @@ int player_create(t_game **game)
player->pos.x = 20.f;
player->pos.y = 20.f;
player->angle = 0.f;
player->speed = 35.f;
player->speed = 80.f;
player->fov = 90.f;
(*game)->player = player;
return (SUCCESS);