don't draw lines out of bounds
This commit is contained in:
parent
03223ca561
commit
5d19de8673
@ -6,13 +6,18 @@
|
|||||||
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2025/04/17 17:49:01 by qmennen #+# #+# */
|
/* 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 "line.h"
|
||||||
#include "MLX42.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)
|
void line_low(t_screen *screen, t_vec2 start, t_vec2 end, unsigned int color)
|
||||||
{
|
{
|
||||||
int delta;
|
int delta;
|
||||||
@ -29,6 +34,7 @@ void line_low(t_screen *screen, t_vec2 start, t_vec2 end, unsigned int color)
|
|||||||
current = start;
|
current = start;
|
||||||
while (current.x <= end.x)
|
while (current.x <= end.x)
|
||||||
{
|
{
|
||||||
|
if (check_bounds(screen, ¤t))
|
||||||
mlx_put_pixel(screen->img, (int)current.x, (int)current.y, color);
|
mlx_put_pixel(screen->img, (int)current.x, (int)current.y, color);
|
||||||
if (delta > 0)
|
if (delta > 0)
|
||||||
{
|
{
|
||||||
@ -56,6 +62,7 @@ void line_high(t_screen *screen, t_vec2 start, t_vec2 end, unsigned int color)
|
|||||||
current = start;
|
current = start;
|
||||||
while (current.y <= end.y)
|
while (current.y <= end.y)
|
||||||
{
|
{
|
||||||
|
if (check_bounds(screen, ¤t))
|
||||||
mlx_put_pixel(screen->img, (int)current.x, (int)current.y, color);
|
mlx_put_pixel(screen->img, (int)current.x, (int)current.y, color);
|
||||||
if (delta > 0)
|
if (delta > 0)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2025/04/15 18:53:19 by qmennen #+# #+# */
|
/* 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.x = 20.f;
|
||||||
player->pos.y = 20.f;
|
player->pos.y = 20.f;
|
||||||
player->angle = 0.f;
|
player->angle = 0.f;
|
||||||
player->speed = 35.f;
|
player->speed = 80.f;
|
||||||
player->fov = 90.f;
|
player->fov = 90.f;
|
||||||
(*game)->player = player;
|
(*game)->player = player;
|
||||||
return (SUCCESS);
|
return (SUCCESS);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user