Début so_long, affichage fenêtre et personnage

This commit is contained in:
Etienne Rey-bethbeder 2022-12-10 19:20:53 +01:00
commit 61b420326e
17 changed files with 976 additions and 0 deletions

BIN
.key.h.swp Normal file

Binary file not shown.

1
42_libft Submodule

@ -0,0 +1 @@
Subproject commit a020fd795c3dc0a34a59d2906908202cde3d3ccf

147
Makefile Normal file
View file

@ -0,0 +1,147 @@
# **************************************************************************** #
# #
# ::: :::::::: #
# Makefile :+: :+: :+: #
# +:+ +:+ +:+ #
# By: erey-bet <marvin@42.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# 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

BIN
assets/background.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 602 B

132
assets/background.xpm Normal file
View file

@ -0,0 +1,132 @@
/* XPM */
static char * background_xpm[] = {
"128 128 1 1",
" c #000000",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "};

BIN
assets/collectible.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 938 B

133
assets/collectible.xpm Normal file
View file

@ -0,0 +1,133 @@
/* XPM */
static char * collectible_xpm[] = {
"128 128 2 1",
" c #000000",
". c #11FD00",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ............. ",
" ................... ",
" ....................... ",
" ........................... ",
" ............................. ",
" ................................. ",
" ................................... ",
" ..................................... ",
" ....................................... ",
" ....................................... ",
" ......................................... ",
" ........................................... ",
" ........................................... ",
" ............................................. ",
" ............................................. ",
" ............................................... ",
" ............................................... ",
" ............................................... ",
" ................................................. ",
" ................................................. ",
" ................................................. ",
" ................................................. ",
" ................................................. ",
" ................................................. ",
" ................................................. ",
" ................................................. ",
" ................................................. ",
" ................................................. ",
" ................................................. ",
" ................................................. ",
" ................................................. ",
" ............................................... ",
" ............................................... ",
" ............................................... ",
" ............................................. ",
" ............................................. ",
" ........................................... ",
" ........................................... ",
" ......................................... ",
" ....................................... ",
" ....................................... ",
" ..................................... ",
" ................................... ",
" ................................. ",
" ............................. ",
" ........................... ",
" ....................... ",
" ................... ",
" ............. ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "};

BIN
assets/enemy.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 900 B

133
assets/enemy.xpm Normal file
View file

@ -0,0 +1,133 @@
/* XPM */
static char * enemy_xpm[] = {
"128 128 2 1",
" c #000000",
". c #FF0000",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ............. ",
" ................... ",
" ....................... ",
" ........................... ",
" ............................. ",
" ................................. ",
" ................................... ",
" ..................................... ",
" ....................................... ",
" ....................................... ",
" ......................................... ",
" ........................................... ",
" ........................................... ",
" ............................................. ",
" ............................................. ",
" ............................................... ",
" ............................................... ",
" ............................................... ",
" ................................................. ",
" ................................................. ",
" ................................................. ",
" ................................................. ",
" ................................................. ",
" ................................................. ",
" ................................................. ",
" ................................................. ",
" ................................................. ",
" ................................................. ",
" ................................................. ",
" ................................................. ",
" ................................................. ",
" ............................................... ",
" ............................................... ",
" ............................................... ",
" ............................................. ",
" ............................................. ",
" ........................................... ",
" ........................................... ",
" ......................................... ",
" ....................................... ",
" ....................................... ",
" ..................................... ",
" ................................... ",
" ................................. ",
" ............................. ",
" ........................... ",
" ....................... ",
" ................... ",
" ............. ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "};

BIN
assets/player.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

133
assets/player.xpm Normal file
View file

@ -0,0 +1,133 @@
/* XPM */
static char * player_xpm[] = {
"128 128 2 1",
" c #000000",
". c #FDFDFD",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ............. ",
" ....................... ",
" ............................... ",
" ................................... ",
" ......................................... ",
" ............................................. ",
" ................................................. ",
" ................................................... ",
" ....................................................... ",
" ......................................................... ",
" ............................................................. ",
" ............................................................... ",
" ................................................................. ",
" ................................................................... ",
" ..................................................................... ",
" ....................................................................... ",
" ......................................................................... ",
" ........................................................................... ",
" ............................................................................. ",
" ............................................................................... ",
" ............................................................................... ",
" ................................................................................. ",
" ................................................................................... ",
" ................................................................................... ",
" ..................................................................................... ",
" ....................................................................................... ",
" ....................................................................................... ",
" ......................................................................................... ",
" ......................................................................................... ",
" ........................................................................................... ",
" ........................................................................................... ",
" ........................................................................................... ",
" ............................................................................................. ",
" ............................................................................................. ",
" ............................................................................................... ",
" ............................................................................................... ",
" ............................................................................................... ",
" ............................................................................................... ",
" ................................................................................................. ",
" ................................................................................................. ",
" ................................................................................................. ",
" ................................................................................................. ",
" ................................................................................................. ",
" ................................................................................................... ",
" ................................................................................................... ",
" ................................................................................................... ",
" ................................................................................................... ",
" ................................................................................................... ",
" ................................................................................................... ",
" ................................................................................................... ",
" ................................................................................................... ",
" ................................................................................................... ",
" ................................................................................................... ",
" ................................................................................................... ",
" ................................................................................................... ",
" ................................................................................................... ",
" ................................................................................................. ",
" ................................................................................................. ",
" ................................................................................................. ",
" ................................................................................................. ",
" ................................................................................................. ",
" ............................................................................................... ",
" ............................................................................................... ",
" ............................................................................................... ",
" ............................................................................................... ",
" ............................................................................................. ",
" ............................................................................................. ",
" ........................................................................................... ",
" ........................................................................................... ",
" ........................................................................................... ",
" ......................................................................................... ",
" ......................................................................................... ",
" ....................................................................................... ",
" ....................................................................................... ",
" ..................................................................................... ",
" ................................................................................... ",
" ................................................................................... ",
" ................................................................................. ",
" ............................................................................... ",
" ............................................................................... ",
" ............................................................................. ",
" ........................................................................... ",
" ......................................................................... ",
" ....................................................................... ",
" ..................................................................... ",
" ................................................................... ",
" ................................................................. ",
" ............................................................... ",
" ............................................................. ",
" ......................................................... ",
" ....................................................... ",
" ................................................... ",
" ................................................. ",
" ............................................. ",
" ......................................... ",
" ................................... ",
" ............................... ",
" ....................... ",
" ............. ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "};

BIN
assets/wall.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 730 B

132
assets/wall.xpm Normal file
View file

@ -0,0 +1,132 @@
/* XPM */
static char * wall_xpm[] = {
"128 128 1 1",
" c #FFFFFF",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "};

64
key.h Normal file
View file

@ -0,0 +1,64 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* key.h :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: erey-bet <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* 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

1
minilibx-linux Submodule

@ -0,0 +1 @@
Subproject commit 7dc53a411a7d4ae286c60c6229bd1e395b0efb82

65
so_long.c Normal file
View file

@ -0,0 +1,65 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* so_long.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: erey-bet <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* 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 <stdio.h>
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);
}

35
so_long.h Normal file
View file

@ -0,0 +1,35 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* so_long.h :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: erey-bet <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* 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 <X11/X.h>
# include "minilibx-linux/mlx.h"
# include "key.h"
# include <stdlib.h>
# 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