commit 61b420326e6e4c6ec1ec73967a004ac37d4ca442 Author: Etienne Rey-bethbeder Date: Sat Dec 10 19:20:53 2022 +0100 DĂ©but so_long, affichage fenĂȘtre et personnage diff --git a/.key.h.swp b/.key.h.swp new file mode 100644 index 0000000..6e60d7b Binary files /dev/null and b/.key.h.swp differ diff --git a/42_libft b/42_libft new file mode 160000 index 0000000..a020fd7 --- /dev/null +++ b/42_libft @@ -0,0 +1 @@ +Subproject commit a020fd795c3dc0a34a59d2906908202cde3d3ccf diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..05c5737 --- /dev/null +++ b/Makefile @@ -0,0 +1,147 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# Makefile :+: :+: :+: # +# +:+ +:+ +:+ # +# By: erey-bet +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2022/09/27 04:19:30 by erey-bet #+# #+# # +# Updated: 2022/12/10 15:43:34 by erey-bet ### ########.fr # +# # +# **************************************************************************** # + +SRCS = so_long.c +OBJS = ${SRCS:.c=.o} +LIBS = 42_libft/libft.a minilibx-linux/libmlx.a +CC = clang +CFLAGS = -g -Wall -Wextra -Werror +NAME = so_long + +# PENSER ENLEVER -G + +all: ${NAME} + +${NAME}: ${OBJS} + make -C 42_libft + make -C minilibx-linux + ${CC} ${CFLAGS} -o ${NAME} ${OBJS} ${LIBS} -lXext -lX11 + +%.o:%.c + ${CC} ${CFLAGS} -c -o $@ $< + +clean: + rm -f ${OBJS} + make -C 42_libft clean + make -C minilibx-linux clean + +fclean: + rm -f ${OBJS} ${NAME} + make -C 42_libft fclean + make -C minilibx-linux clean + +re: fclean all + +.PHONY: all clean fclean re coffee + +coffee: + @clear + @echo "" + @echo " (" + @echo " ) (" + @echo " ___...(-------)-....___" + @echo ' .-"" ) ( ""-.' + @echo " .-''''|-._ ) _.-|" + @echo ' / .--.| `""---...........---""` |' + @echo " / / | |" + @echo " | | | |" + @echo " \ \ | |" + @echo " '\ '\ | |" + @echo " '\ '| |" + @echo " _/ /\ /" + @echo " (__/ \ /" + @echo ' _..---""` \ /`""---.._' + @echo " .-' \ / '-." + @echo ": '-.__ __.-' :" + @echo ': ) ""---...---"" ( :' + @echo "\'._ '"--...___...--"' _.'" + @echo ' \""--..__ __..--""/' + @echo " '._ """----.....______.....----""" _.'" + @echo ' ""--..,,_____ _____,,..--"""''' + @echo ' """------"""' + @sleep 0.3 + @clear + @echo "" + @echo " (" + @echo " ) (" + @echo " ___..(.------)--....___" + @echo ' .-"" ) ( ""-.' + @echo " .-''''|-._ ( ) _.-|" + @echo ' / .--.| `""---...........---""` |' + @echo " / / | |" + @echo " | | | |" + @echo " \ \ | |" + @echo " '\ '\ | |" + @echo " '\ '| |" + @echo " _/ /\ /" + @echo " (__/ \ /" + @echo ' _..---""` \ /`""---.._' + @echo " .-' \ / '-." + @echo ": '-.__ __.-' :" + @echo ': ) ""---...---"" ( :' + @echo "\'._ '"--...___...--"' _.'" + @echo ' \""--..__ __..--""/' + @echo " '._ """----.....______.....----""" _.'" + @echo ' ""--..,,_____ _____,,..--"""''' + @echo ' """------"""' + @sleep 0.3 + @clear + @echo "" + @echo " (" + @echo " ) (" + @echo " ___..(.------)--....___" + @echo ' .-"" ) ( ""-.' + @echo " .-''''|-._ ( ) _.-|" + @echo ' / .--.| `""---...........---""` |' + @echo " / / | |" + @echo " | | | |" + @echo " \ \ | |" + @echo " '\ '\ | |" + @echo " '\ '| |" + @echo " _/ /\ /" + @echo " (__/ \ /" + @echo ' _..---""` \ /`""---.._' + @echo " .-' \ / '-." + @echo ": '-.__ __.-' :" + @echo ': ) ""---...---"" ( :' + @echo "\'._ '"--...___...--"' _.'" + @echo ' \""--..__ __..--""/' + @echo " '._ """----.....______.....----""" _.'" + @echo ' ""--..,,_____ _____,,..--"""''' + @echo ' """------"""' + @sleep 0.3 + @clear + @echo "" + @echo " ( ) " + @echo " ) (" + @echo " ___)...----)----....___" + @echo ' .-"" ) ( ""-.' + @echo " .-''''|-._ ( ) _.-|" + @echo ' / .--.| `""---...........---""` |' + @echo " / / | |" + @echo " | | | |" + @echo " \ \ | |" + @echo " '\ '\ | |" + @echo " '\ '| |" + @echo " _/ /\ /" + @echo " (__/ \ /" + @echo ' _..---""` \ /`""---.._' + @echo " .-' \ / '-." + @echo ": '-.__ __.-' :" + @echo ': ) ""---...---"" ( :' + @echo "\'._ '"--...___...--"' _.'" + @echo ' \""--..__ __..--""/' + @echo " '._ """----.....______.....----""" _.'" + @echo ' ""--..,,_____ _____,,..--"""''' + @echo ' """------"""' + ${MAKE} coffee + diff --git a/assets/background.png b/assets/background.png new file mode 100644 index 0000000..64d7c7b Binary files /dev/null and b/assets/background.png differ diff --git a/assets/background.xpm b/assets/background.xpm new file mode 100644 index 0000000..5db3316 --- /dev/null +++ b/assets/background.xpm @@ -0,0 +1,132 @@ +/* XPM */ +static char * background_xpm[] = { +"128 128 1 1", +" c #000000", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; diff --git a/assets/collectible.png b/assets/collectible.png new file mode 100644 index 0000000..b0f9ef5 Binary files /dev/null and b/assets/collectible.png differ diff --git a/assets/collectible.xpm b/assets/collectible.xpm new file mode 100644 index 0000000..124d34e --- /dev/null +++ b/assets/collectible.xpm @@ -0,0 +1,133 @@ +/* XPM */ +static char * collectible_xpm[] = { +"128 128 2 1", +" c #000000", +". c #11FD00", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ............. ", +" ................... ", +" ....................... ", +" ........................... ", +" ............................. ", +" ................................. ", +" ................................... ", +" ..................................... ", +" ....................................... ", +" ....................................... ", +" ......................................... ", +" ........................................... ", +" ........................................... ", +" ............................................. ", +" ............................................. ", +" ............................................... ", +" ............................................... ", +" ............................................... ", +" ................................................. ", +" ................................................. ", +" ................................................. ", +" ................................................. ", +" ................................................. ", +" ................................................. ", +" ................................................. ", +" ................................................. ", +" ................................................. ", +" ................................................. ", +" ................................................. ", +" ................................................. ", +" ................................................. ", +" ............................................... ", +" ............................................... ", +" ............................................... ", +" ............................................. ", +" ............................................. ", +" ........................................... ", +" ........................................... ", +" ......................................... ", +" ....................................... ", +" ....................................... ", +" ..................................... ", +" ................................... ", +" ................................. ", +" ............................. ", +" ........................... ", +" ....................... ", +" ................... ", +" ............. ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; diff --git a/assets/enemy.png b/assets/enemy.png new file mode 100644 index 0000000..81dfca2 Binary files /dev/null and b/assets/enemy.png differ diff --git a/assets/enemy.xpm b/assets/enemy.xpm new file mode 100644 index 0000000..85f41ef --- /dev/null +++ b/assets/enemy.xpm @@ -0,0 +1,133 @@ +/* XPM */ +static char * enemy_xpm[] = { +"128 128 2 1", +" c #000000", +". c #FF0000", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ............. ", +" ................... ", +" ....................... ", +" ........................... ", +" ............................. ", +" ................................. ", +" ................................... ", +" ..................................... ", +" ....................................... ", +" ....................................... ", +" ......................................... ", +" ........................................... ", +" ........................................... ", +" ............................................. ", +" ............................................. ", +" ............................................... ", +" ............................................... ", +" ............................................... ", +" ................................................. ", +" ................................................. ", +" ................................................. ", +" ................................................. ", +" ................................................. ", +" ................................................. ", +" ................................................. ", +" ................................................. ", +" ................................................. ", +" ................................................. ", +" ................................................. ", +" ................................................. ", +" ................................................. ", +" ............................................... ", +" ............................................... ", +" ............................................... ", +" ............................................. ", +" ............................................. ", +" ........................................... ", +" ........................................... ", +" ......................................... ", +" ....................................... ", +" ....................................... ", +" ..................................... ", +" ................................... ", +" ................................. ", +" ............................. ", +" ........................... ", +" ....................... ", +" ................... ", +" ............. ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; diff --git a/assets/player.png b/assets/player.png new file mode 100644 index 0000000..de3a835 Binary files /dev/null and b/assets/player.png differ diff --git a/assets/player.xpm b/assets/player.xpm new file mode 100644 index 0000000..85a4a5e --- /dev/null +++ b/assets/player.xpm @@ -0,0 +1,133 @@ +/* XPM */ +static char * player_xpm[] = { +"128 128 2 1", +" c #000000", +". c #FDFDFD", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ............. ", +" ....................... ", +" ............................... ", +" ................................... ", +" ......................................... ", +" ............................................. ", +" ................................................. ", +" ................................................... ", +" ....................................................... ", +" ......................................................... ", +" ............................................................. ", +" ............................................................... ", +" ................................................................. ", +" ................................................................... ", +" ..................................................................... ", +" ....................................................................... ", +" ......................................................................... ", +" ........................................................................... ", +" ............................................................................. ", +" ............................................................................... ", +" ............................................................................... ", +" ................................................................................. ", +" ................................................................................... ", +" ................................................................................... ", +" ..................................................................................... ", +" ....................................................................................... ", +" ....................................................................................... ", +" ......................................................................................... ", +" ......................................................................................... ", +" ........................................................................................... ", +" ........................................................................................... ", +" ........................................................................................... ", +" ............................................................................................. ", +" ............................................................................................. ", +" ............................................................................................... ", +" ............................................................................................... ", +" ............................................................................................... ", +" ............................................................................................... ", +" ................................................................................................. ", +" ................................................................................................. ", +" ................................................................................................. ", +" ................................................................................................. ", +" ................................................................................................. ", +" ................................................................................................... ", +" ................................................................................................... ", +" ................................................................................................... ", +" ................................................................................................... ", +" ................................................................................................... ", +" ................................................................................................... ", +" ................................................................................................... ", +" ................................................................................................... ", +" ................................................................................................... ", +" ................................................................................................... ", +" ................................................................................................... ", +" ................................................................................................... ", +" ................................................................................................... ", +" ................................................................................................. ", +" ................................................................................................. ", +" ................................................................................................. ", +" ................................................................................................. ", +" ................................................................................................. ", +" ............................................................................................... ", +" ............................................................................................... ", +" ............................................................................................... ", +" ............................................................................................... ", +" ............................................................................................. ", +" ............................................................................................. ", +" ........................................................................................... ", +" ........................................................................................... ", +" ........................................................................................... ", +" ......................................................................................... ", +" ......................................................................................... ", +" ....................................................................................... ", +" ....................................................................................... ", +" ..................................................................................... ", +" ................................................................................... ", +" ................................................................................... ", +" ................................................................................. ", +" ............................................................................... ", +" ............................................................................... ", +" ............................................................................. ", +" ........................................................................... ", +" ......................................................................... ", +" ....................................................................... ", +" ..................................................................... ", +" ................................................................... ", +" ................................................................. ", +" ............................................................... ", +" ............................................................. ", +" ......................................................... ", +" ....................................................... ", +" ................................................... ", +" ................................................. ", +" ............................................. ", +" ......................................... ", +" ................................... ", +" ............................... ", +" ....................... ", +" ............. ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; diff --git a/assets/wall.png b/assets/wall.png new file mode 100644 index 0000000..1c4e714 Binary files /dev/null and b/assets/wall.png differ diff --git a/assets/wall.xpm b/assets/wall.xpm new file mode 100644 index 0000000..2851124 --- /dev/null +++ b/assets/wall.xpm @@ -0,0 +1,132 @@ +/* XPM */ +static char * wall_xpm[] = { +"128 128 1 1", +" c #FFFFFF", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; diff --git a/key.h b/key.h new file mode 100644 index 0000000..588487d --- /dev/null +++ b/key.h @@ -0,0 +1,64 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* key.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/12/10 16:12:49 by erey-bet #+# #+# */ +/* Updated: 2022/12/10 16:13:41 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef KEY_H +# define KEY_H + +// Keyboard LETTERS + +# define K_A 97 +# define K_B 98 +# define K_C 99 +# define K_D 100 +# define K_E 101 +# define K_F 102 +# define K_G 103 +# define K_H 104 +# define K_I 105 +# define K_J 106 +# define K_K 107 +# define K_L 108 +# define K_M 109 +# define K_N 110 +# define K_O 111 +# define K_P 112 +# define K_Q 113 +# define K_R 114 +# define K_S 115 +# define K_T 116 +# define K_U 117 +# define K_V 118 +# define K_W 119 +# define K_X 120 +# define K_Y 121 +# define K_Z 122 + +// Keyboard ARROWS + +# define K_LEFT 65361 +# define K_RIGHT 65363 +# define K_UP 65362 +# define K_DOWN 65364 + +// Keyboard MISC + +# define K_SP 32 +# define K_ESC 65307 + +// Mouse +# define M_CLK_L 1 +# define M_CLK_R 3 +# define M_CLK_M 2 +# define M_SCR_U 4 +# define M_SCR_D 5 + +#endif diff --git a/minilibx-linux b/minilibx-linux new file mode 160000 index 0000000..7dc53a4 --- /dev/null +++ b/minilibx-linux @@ -0,0 +1 @@ +Subproject commit 7dc53a411a7d4ae286c60c6229bd1e395b0efb82 diff --git a/so_long.c b/so_long.c new file mode 100644 index 0000000..8d52516 --- /dev/null +++ b/so_long.c @@ -0,0 +1,65 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* so_long.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/12/09 14:18:18 by erey-bet #+# #+# */ +/* Updated: 2022/12/10 19:19:12 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "so_long.h" +#include + +int quit(void) +{ + exit(0); + return (0); +} + +int key_hook(int key, t_data *data) +{ + if (key == K_ESC) + quit(); + else if (key == K_LEFT) + data->x_player -= 128; + else if (key == K_RIGHT) + data->x_player += 128; + else if (key == K_UP) + data->y_player -= 128; + else if (key == K_DOWN) + data->y_player += 128; + return (0); +} + +int render(t_data *data) +{ + int height; + int width; + + height = 128; + width = 128; + //mlx_destroy_image(data->mlx, data->player); + data->player = mlx_xpm_file_to_image(data->mlx, "assets/player.xpm", &width, &height); + mlx_put_image_to_window(data->mlx, data->mlx_win, data->player, data->x_player, data->y_player); + return (0); +} + +int main(int argc, char *argv[]) +{ + t_data data; + + (void)argc; + (void)argv; + data.x_player = 0; + data.y_player = 0; + data.mlx = mlx_init(); + data.mlx_win = mlx_new_window(data.mlx, 1000, 1000, "lili meli"); + mlx_hook(data.mlx_win, 17, 0, quit, 0); + mlx_key_hook(data.mlx_win, key_hook, &data); + mlx_loop_hook(data.mlx, render, &data); + mlx_loop(data.mlx); + return (0); +} diff --git a/so_long.h b/so_long.h new file mode 100644 index 0000000..e956c7a --- /dev/null +++ b/so_long.h @@ -0,0 +1,35 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* so_long.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: erey-bet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/12/10 17:59:18 by erey-bet #+# #+# */ +/* Updated: 2022/12/10 18:29:57 by erey-bet ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef SO_LONG_H +# define SO_LONG_H + +# include +# include "minilibx-linux/mlx.h" +# include "key.h" +# include +# include "42_libft/libft.h" + +typedef struct s_data +{ + void *mlx; + void *mlx_win; + void *player; + void *bg; + void *wall; + int x_player; + int y_player; + int h_screen; + int w_screen; +} t_data; + +#endif