diff --git a/README.md b/README.md index d9e01de..fff3630 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,23 @@ -# FDF +# FDF - fil de fer -quick description +this program is written in C -- [subject here](./fdf_subject.pdf) +this is an exercize to discover 3D drawing, keyboard events, and pixel images manipulation -![limage](fdf_test_white-pink.gif) +what it does is to read a map, which is a simple text file like this one : -### ressources +``` +0 0 0 0 0 +0 0 0 0 0 +0 10 0 0 0 +0 0 0 0 0 +0 0 0 0 0 +``` -- minilibx : https://harm-smits.github.io/42docs/libs/minilibx -- draw a line : https://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm +and it will convert it into a rectangular net, like a landscape with the height equal to the numbers : +![example 3D of map before modification](assets/fdf_demo_1.jpg) + +if we modify the map it will modify the 3D drawing + +![example 3D of map after modifications](assets/fdf_demo_2.jpg) diff --git a/assets/fdf_demo.gif b/assets/fdf_demo.gif new file mode 100644 index 0000000..62e3f78 Binary files /dev/null and b/assets/fdf_demo.gif differ diff --git a/assets/fdf_demo_1.jpg b/assets/fdf_demo_1.jpg new file mode 100644 index 0000000..80f69d7 Binary files /dev/null and b/assets/fdf_demo_1.jpg differ diff --git a/assets/fdf_demo_2.jpg b/assets/fdf_demo_2.jpg new file mode 100644 index 0000000..958adfb Binary files /dev/null and b/assets/fdf_demo_2.jpg differ diff --git a/assets/fdf_loop_change_height_50.gif b/assets/fdf_loop_change_height_50.gif new file mode 100644 index 0000000..0dd8366 Binary files /dev/null and b/assets/fdf_loop_change_height_50.gif differ diff --git a/assets/fdf_loop_flying_tube.gif b/assets/fdf_loop_flying_tube.gif new file mode 100644 index 0000000..1047e9d Binary files /dev/null and b/assets/fdf_loop_flying_tube.gif differ diff --git a/assets/fdf_loop_move_down_tube.gif b/assets/fdf_loop_move_down_tube.gif new file mode 100644 index 0000000..7531ecc Binary files /dev/null and b/assets/fdf_loop_move_down_tube.gif differ diff --git a/assets/fdf_loop_move_left_tube.gif b/assets/fdf_loop_move_left_tube.gif new file mode 100644 index 0000000..5d54c21 Binary files /dev/null and b/assets/fdf_loop_move_left_tube.gif differ diff --git a/assets/fdf_loop_turn_down_pylone.gif b/assets/fdf_loop_turn_down_pylone.gif new file mode 100644 index 0000000..9559328 Binary files /dev/null and b/assets/fdf_loop_turn_down_pylone.gif differ diff --git a/assets/fdf_loop_turn_left_pyramide.gif b/assets/fdf_loop_turn_left_pyramide.gif new file mode 100644 index 0000000..c2451b9 Binary files /dev/null and b/assets/fdf_loop_turn_left_pyramide.gif differ diff --git a/assets/fdf_loop_zoom_element.gif b/assets/fdf_loop_zoom_element.gif new file mode 100644 index 0000000..126a6f3 Binary files /dev/null and b/assets/fdf_loop_zoom_element.gif differ diff --git a/assets/fdf_pylone.gif b/assets/fdf_pylone.gif new file mode 100644 index 0000000..fa9e750 Binary files /dev/null and b/assets/fdf_pylone.gif differ diff --git a/assets/fdf_pyramide.gif b/assets/fdf_pyramide.gif new file mode 100644 index 0000000..c41487c Binary files /dev/null and b/assets/fdf_pyramide.gif differ diff --git a/assets/fdf_t2.gif b/assets/fdf_t2.gif new file mode 100644 index 0000000..65982b8 Binary files /dev/null and b/assets/fdf_t2.gif differ diff --git a/fdf_test_white-pink.gif b/fdf_test_white-pink.gif deleted file mode 100644 index 2bf9109..0000000 Binary files a/fdf_test_white-pink.gif and /dev/null differ diff --git a/includes/fdf.h b/includes/fdf.h index 2cea5dc..691f821 100644 --- a/includes/fdf.h +++ b/includes/fdf.h @@ -84,26 +84,38 @@ int **parse_map(t_fdf *fdf, int fd); # define Z_HEIGHT_UP 10 # define Z_HEIGHT_DOWN 10 +/* + - 50 : pink - blue + - elem : purple - green + - pylone : brown - purple + - pyramide : white - pink + - semitube : green - pink + - t2 : white - green + - test : white - pink +*/ // color for altitude -# define COLOR_START 0xffffff // white +# define COLOR_START 0xa263f6 // purple /* # define COLOR_START 0xf263a6 // pink -# define COLOR_START 0x00d700 // green -# define COLOR_START 0x877264 // brown +# define COLOR_START 0xffffff // white # define COLOR_START 0x1423e6 // blue -# define COLOR_START 0xa263f6 // purple +# define COLOR_START 0x877264 // brown +# define COLOR_START 0x00d700 // green */ /* -# define COLOR_END 0xffffff // white -# define COLOR_END 0x00d700 // green # define COLOR_END 0x877264 // brown -# define COLOR_END 0x1423e6 // blue +# define COLOR_END 0x00d700 // green # define COLOR_END 0xa263f6 // purple -*/ +# define COLOR_END 0x1423e6 // blue # define COLOR_END 0xf263a6 // pink +*/ +# define COLOR_END 0xffffff // white + +// pixels deplacement for each keypress +# define MOVE 10 // minimum time in milliseconds between two keypress -# define DEBOUNCE_TIME 1 +# define DEBOUNCE_TIME 10 # define ESCAPE 65307 # define UP 65362 diff --git a/maps_2/elem.fdf b/maps_2/elem.fdf index 4143430..997b8c5 100644 --- a/maps_2/elem.fdf +++ b/maps_2/elem.fdf @@ -1,9 +1,9 @@ 0 0 0 0 0 0 0 0 0 0 -0 10 10 10 10 10 10 10 10 0 -0 10 20 15 12 15 17 20 10 0 -0 10 15 10 12 15 15 15 10 0 -0 5 15 10 12 15 15 13 10 0 -0 5 10 5 7 12 12 12 10 0 +0 8 8 10 10 10 10 10 10 0 +0 8 10 10 12 15 17 20 10 0 +0 8 10 10 12 15 15 15 10 0 +0 5 10 10 12 15 15 13 10 0 +0 5 8 5 7 12 12 12 10 0 0 5 7 1 2 7 5 5 7 0 0 3 0 0 1 2 2 2 5 0 0 1 0 0 0 0 0 0 3 0 diff --git a/maps_2/test.fdf b/maps_2/test.fdf index f5cf119..49a02ec 100644 --- a/maps_2/test.fdf +++ b/maps_2/test.fdf @@ -1,5 +1,5 @@ -0 0 0 0 0 0 -0 7 7 7 0 0 -0 7 9 7 0 0 -0 7 7 7 0 0 -0 0 0 0 0 0 +0 0 0 0 0 +0 0 0 0 0 +0 10 0 0 0 +0 0 0 0 0 +0 0 0 0 0 diff --git a/notes.md b/notes.md new file mode 100644 index 0000000..e6947d8 --- /dev/null +++ b/notes.md @@ -0,0 +1,10 @@ +# FDF + +- [subject here](./fdf_subject.pdf) + +### ressources + +- minilibx : https://harm-smits.github.io/42docs/libs/minilibx +- draw a line : https://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm + + diff --git a/srcs/keypress_bonus.c b/srcs/keypress_bonus.c index d2c01ee..c627cd2 100644 --- a/srcs/keypress_bonus.c +++ b/srcs/keypress_bonus.c @@ -89,13 +89,13 @@ int keypress(int keycode, t_fdf *fdf) else if (keycode == DOWN) fdf->rot_y -= 1; else if (keycode == Q) - fdf->mov_x -= 6; + fdf->mov_x -= MOVE; else if (keycode == D) - fdf->mov_x += 6; + fdf->mov_x += MOVE; else if (keycode == Z) - fdf->mov_y -= 6; + fdf->mov_y -= MOVE; else if (keycode == S) - fdf->mov_y += 6; + fdf->mov_y += MOVE; else keypress_more(keycode, fdf); draw_image(fdf);