Archived
1
0

started to clean exit

This commit is contained in:
Adam Joly
2024-01-13 19:04:22 +01:00
parent 884b480891
commit 1afe8754c8
13 changed files with 131 additions and 44 deletions

@ -6,7 +6,7 @@
# By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2023/11/01 11:03:22 by adjoly #+# #+# #
# Updated: 2024/01/13 16:14:46 by adjoly ### ########.fr #
# Updated: 2024/01/13 17:23:48 by adjoly ### ########.fr #
# #
# **************************************************************************** #
@ -27,13 +27,15 @@ HEADERS = so_long.h
LIB = MacroLibX/libmlx.so \
libft/libft.a \
get_next_line/get_next_line.a
get_next_line/get_next_line.a \
printf/libftprintf.a
MLX_FLAGS = -lSDL2
$(NAME): $(OBJS)
make -C libft
make -C get_next_line
make -C printf
$(CC) $(FLAGS) $(MLX_FLAGS) $(OBJS) $(LIB) -o $(NAME)
%.o: %.c
@ -44,11 +46,13 @@ all: $(NAME)
clean:
make -C libft clean
make -C get_next_line clean
make -C printf
rm -f $(OBJS)
fclean: clean
make -C libft fclean
make -C get_next_line fclean
make -C printf
rm -f $(NAME)
re: fclean all

@ -6,55 +6,136 @@
/* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/01/07 19:13:01 by adjoly #+# #+# */
/* Updated: 2024/01/13 17:13:08 by adjoly ### ########.fr */
/* Updated: 2024/01/13 18:14:25 by adjoly ### ########.fr */
/* */
/* ************************************************************************** */
#include "MacroLibX/includes/mlx.h"
#include "libft/libft.h"
#include "printf/ft_printf.h"
#include "so_long.h"
void ft_move_up(t_window *win)
{
if (win->map[win->p_coords->y - 1][win->p_coords->x] != '1')
if (win->map[win->p_coords->y - 1][win->p_coords->x] == 'C')
{
ft_putimg(win->p_coords->x, win->p_coords->y - 1, win, P_PNG);
ft_putimg(win->p_coords->x, win->p_coords->y - 1, win, P_PNG);
ft_putimg(win->p_coords->x, win->p_coords->y, win, G_PNG);
win->map[win->p_coords->y - 1][win->p_coords->x] = '0';
win->p_coords->y = win->p_coords->y - 1;
ft_printf("%d\n", win->c_count);
win->c_count--;
ft_printf("%d\n", win->c_count);
win->mov_count++;
}
else if (win->p_coords->y == win->e_coords->y && win->e_coords->x == win->p_coords->x && win->map[win->p_coords->y - 1][win->p_coords->x] != '1')
{
ft_putimg(win->p_coords->x, win->p_coords->y - 1, win, P_PNG);
ft_putimg(win->p_coords->x, win->p_coords->y, win, E_PNG);
win->p_coords->y = win->p_coords->y - 1;
win->mov_count++;
}
else if (win->map[win->p_coords->y - 1][win->p_coords->x] == 'E' && win->c_count == 0)
exit(0);
else if (win->map[win->p_coords->y - 1][win->p_coords->x] != '1')
{
ft_putimg(win->p_coords->x, win->p_coords->y - 1, win, P_PNG);
ft_putimg(win->p_coords->x, win->p_coords->y, win, G_PNG);
win->p_coords->y = win->p_coords->y - 1;
ft_putstr_fd("UP", 1);
win->mov_count++;
}
}
void ft_move_down(t_window *win)
{
if (win->map[win->p_coords->y + 1][win->p_coords->x] != '1')
if (win->map[win->p_coords->y + 1][win->p_coords->x] == 'C')
{
ft_putimg(win->p_coords->x, win->p_coords->y + 1, win, P_PNG);
ft_putimg(win->p_coords->x, win->p_coords->y, win, G_PNG);
win->map[win->p_coords->y + 1][win->p_coords->x] = '0';
win->p_coords->y = win->p_coords->y + 1;
ft_printf("%d\n", win->c_count);
win->c_count--;
ft_printf("%d\n", win->c_count);
win->mov_count++;
}
else if (win->p_coords->x == win->e_coords->x && win->p_coords->y == win->e_coords->y && win->map[win->p_coords->y + 1][win->p_coords->x] != '1')
{
ft_putimg(win->p_coords->x, win->p_coords->y + 1, win, P_PNG);
ft_putimg(win->p_coords->x, win->p_coords->y, win, E_PNG);
win->p_coords->y = win->p_coords->y + 1;
win->mov_count++;
}
else if (win->map[win->p_coords->y + 1][win->p_coords->x] == 'E' && win->c_count == 0)
exit(0);
else if (win->map[win->p_coords->y + 1][win->p_coords->x] != '1')
{
ft_putimg(win->p_coords->x, win->p_coords->y + 1, win, P_PNG);
ft_putimg(win->p_coords->x, win->p_coords->y, win, G_PNG);
win->p_coords->y = win->p_coords->y + 1;
ft_putstr_fd("UP", 1);
win->mov_count++;
}
}
void ft_move_left(t_window *win)
{
if (win->map[win->p_coords->y][win->p_coords->x - 1] != '1')
if (win->map[win->p_coords->y][win->p_coords->x - 1] == 'C')
{
ft_putimg(win->p_coords->x - 1, win->p_coords->y, win, P_PNG);
ft_putimg(win->p_coords->x, win->p_coords->y, win, G_PNG);
win->map[win->p_coords->y][win->p_coords->x - 1] = '0';
win->p_coords->x = win->p_coords->x - 1;
ft_printf("%d\n", win->c_count);
win->c_count--;
ft_printf("%d\n", win->c_count);
win->mov_count++;
}
else if (win->p_coords->x == win->e_coords->x && win->e_coords->y == win->p_coords->y && win->map[win->p_coords->y][win->p_coords->x - 1] != '1')
{
ft_putimg(win->p_coords->x - 1, win->p_coords->y, win, P_PNG);
ft_putimg(win->p_coords->x, win->p_coords->y, win, E_PNG);
win->p_coords->x = win->p_coords->x - 1;
win->mov_count++;
}
if (win->map[win->p_coords->y][win->p_coords->x - 1] == 'E' && win->c_count == 0)
exit(0);
else if (win->map[win->p_coords->y][win->p_coords->x - 1] != '1')
{
ft_putimg(win->p_coords->x - 1, win->p_coords->y, win, P_PNG);
ft_putimg(win->p_coords->x, win->p_coords->y, win, G_PNG);
win->p_coords->x = win->p_coords->x - 1;
ft_putstr_fd("UP", 1);
win->mov_count++;
}
}
void ft_move_right(t_window *win)
{
if (win->map[win->p_coords->y][win->p_coords->x + 1] != '1')
if (win->map[win->p_coords->y][win->p_coords->x + 1] == 'C')
{
ft_putimg(win->p_coords->x + 1, win->p_coords->y, win, P_PNG);
ft_putimg(win->p_coords->x, win->p_coords->y, win, G_PNG);
win->map[win->p_coords->y][win->p_coords->x + 1] = '0';
win->p_coords->x = win->p_coords->x + 1;
ft_printf("%d\n", win->c_count);
win->c_count--;
ft_printf("%d\n", win->c_count);
win->mov_count++;
}
else if (win->p_coords->x == win->e_coords->x && win->p_coords->y == win->e_coords->y && win->map[win->p_coords->y][win->p_coords->x + 1] != '1')
{
ft_putimg(win->p_coords->x + 1, win->p_coords->y, win, P_PNG);
ft_putimg(win->p_coords->x, win->p_coords->y, win, E_PNG);
win->p_coords->x = win->p_coords->x + 1;
win->mov_count++;
}
else if (win->map[win->p_coords->y][win->p_coords->x + 1] == 'E' && win->c_count == 0)
exit(0);
else if (win->map[win->p_coords->y][win->p_coords->x + 1] != '1')
{
ft_putimg(win->p_coords->x + 1, win->p_coords->y, win, P_PNG);
ft_putimg(win->p_coords->x, win->p_coords->y, win, G_PNG);
win->p_coords->x = win->p_coords->x + 1;
ft_putstr_fd("UP", 1);
win->mov_count++;
}
(void)win;
}
@ -78,5 +159,6 @@ int ft_key_event(int key, void *param)
// RIGHT/D
else if (key == 7)
ft_move_right(win);
ft_printf("Mouvement : %d\n", win->mov_count);
return (0);
}

Binary file not shown.

@ -6,7 +6,7 @@
/* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/01/08 13:13:18 by adjoly #+# #+# */
/* Updated: 2024/01/13 15:27:42 by adjoly ### ########.fr */
/* Updated: 2024/01/13 19:02:19 by adjoly ### ########.fr */
/* */
/* ************************************************************************** */
@ -56,6 +56,7 @@ char **ft_read_map(char *file_name)
break ;
i++;
}
map_read[i] = NULL;
close(fd);
return (map_read);
}

BIN
get_map.o

Binary file not shown.

36
main.c

@ -6,10 +6,11 @@
/* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/01/06 16:18:56 by adjoly #+# #+# */
/* Updated: 2024/01/13 17:02:27 by adjoly ### ########.fr */
/* Updated: 2024/01/13 19:01:34 by adjoly ### ########.fr */
/* */
/* ************************************************************************** */
#include "libft/libft.h"
#include "so_long.h"
void ft_freemap(char **map)
@ -25,13 +26,6 @@ void ft_freemap(char **map)
free(map);
}
int key_close(int key, void *param)
{
if (key == 41)
mlx_loop_end(param);
return (0);
}
int win_close(int event, void *param)
{
if (event == 0)
@ -39,16 +33,16 @@ int win_close(int event, void *param)
return (0);
}
/*int win_update(void *param)
void ft_exit(t_window *win)
{
t_window *win;
int y;
int x;
win = (t_window *)param;
ft_move_character(key, void *param)
return (0);
}*/
mlx_destroy_image(win->mlx, win->img);
mlx_destroy_window(win->mlx, win->win);
mlx_destroy_display(win->mlx);
ft_freemap(win->map);
free(win->p_coords);
free(win->e_coords);
free(win);
}
int main(int ac, char **av)
{
@ -62,7 +56,7 @@ int main(int ac, char **av)
win->mlx = mlx_init();
win->win = mlx_new_window(win->mlx, 1600, 900, "so_fluffy");
win->map = map;
win->mov_count = 0;
mlx_on_event(win->mlx, win->win, MLX_WINDOW_EVENT, win_close, win->mlx);
mlx_on_event(win->mlx, win->win, MLX_KEYDOWN, ft_key_event, win);
// mlx_loop_hook(win->mlx, win_update, win);
@ -71,11 +65,9 @@ int main(int ac, char **av)
mlx_destroy_image(win->mlx, win->img);
mlx_destroy_window(win->mlx, win->win);
mlx_destroy_display(win->mlx);
ft_freemap(map);
free(win->c_count);
// free(win->p_coords->y);
// free(win->p_coords->x);
ft_freemap(win->map);
free(win->p_coords);
free(win->e_coords);
free(win);
return (0);
}

BIN
main.o

Binary file not shown.

@ -1,5 +1,5 @@
1111111111111
10010000000C1
100100C0000C1
1000011111001
1P0011E000001
1P0011E00C001
1111111111111

@ -6,12 +6,13 @@
/* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/01/09 15:30:06 by adjoly #+# #+# */
/* Updated: 2024/01/13 17:14:56 by adjoly ### ########.fr */
/* Updated: 2024/01/13 17:56:32 by adjoly ### ########.fr */
/* */
/* ************************************************************************** */
#include "MacroLibX/includes/mlx.h"
#include "libft/libft.h"
#include "printf/ft_printf.h"
#include "so_long.h"
#include <stdio.h>
#include <stddef.h>
@ -35,7 +36,7 @@ void ft_printmap(char **map, t_window *win)
int y;
y = 0;
win->c_count = malloc(1 * sizeof(size_t));
// win->c_count = malloc(1 * sizeof(size_t));
win->c_count = 0;
while (map[y])
{
@ -52,7 +53,12 @@ void ft_printmap(char **map, t_window *win)
win->c_count++;
}
else if (map[y][x] == 'E')
{
win->e_coords = malloc(sizeof(t_coords *));
win->e_coords->x = x;
win->e_coords->y = y;
ft_putimg(x, y, win, E_PNG);
}
else if (map[y][x] == 'P')
{
win->p_coords = malloc(sizeof(t_coords *));

Binary file not shown.

1
printf Submodule

Submodule printf added at 71ce8f741d

BIN
so_long

Binary file not shown.

@ -6,7 +6,7 @@
/* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/01/06 16:19:42 by adjoly #+# #+# */
/* Updated: 2024/01/13 17:13:56 by adjoly ### ########.fr */
/* Updated: 2024/01/13 19:00:01 by adjoly ### ########.fr */
/* */
/* ************************************************************************** */
@ -16,12 +16,12 @@
# include "MacroLibX/includes/mlx.h"
# include "libft/libft.h"
# include "get_next_line/get_next_line.h"
# include "printf/ft_printf.h"
# include <stddef.h>
# include <unistd.h>
# include <fcntl.h>
# include <stdlib.h>
# define T_SIZE 64
# define P_PNG "assets/player.png"
# define G_PNG "assets/ground.png"
# define E_PNG "assets/exit.png"
@ -32,7 +32,7 @@ typedef struct s_coords
{
int x;
int y;
} t_coords;
} t_coords;
typedef struct s_window
{
@ -41,8 +41,9 @@ typedef struct s_window
void *img;
char **map;
t_coords *p_coords;
size_t *c_count;
size_t *mov_count;
t_coords *e_coords;
size_t c_count;
size_t mov_count;
} t_window;
int ft_key_event(int key, void *param);