started to clean exit
This commit is contained in:
8
Makefile
8
Makefile
@ -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
BIN
get_map.o
Binary file not shown.
36
main.c
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
BIN
main.o
Binary file not shown.
4
map.ber
4
map.ber
@ -1,5 +1,5 @@
|
||||
1111111111111
|
||||
10010000000C1
|
||||
100100C0000C1
|
||||
1000011111001
|
||||
1P0011E000001
|
||||
1P0011E00C001
|
||||
1111111111111
|
||||
|
10
print_map.c
10
print_map.c
@ -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 *));
|
||||
|
BIN
print_map.o
BIN
print_map.o
Binary file not shown.
1
printf
Submodule
1
printf
Submodule
Submodule printf added at 71ce8f741d
BIN
so_long
BIN
so_long
Binary file not shown.
11
so_long.h
11
so_long.h
@ -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);
|
||||
|
Reference in New Issue
Block a user