33/* ::: :::::::: */
44/* move_player.c :+: :+: :+: */
55/* +:+ +:+ +:+ */
6- /* By: mgraf <mgraf @student.42berlin.de> +#+ +:+ +#+ */
6+ /* By: fheld <fheld @student.42.fr> +#+ +:+ +#+ */
77/* +#+#+#+#+#+ +#+ */
88/* Created: 2023/10/01 22:57:28 by fheld #+# #+# */
9- /* Updated: 2023/10/14 16:45:45 by mgraf ### ########.fr */
9+ /* Updated: 2023/10/18 22:37:43 by fheld ### ########.fr */
1010/* */
1111/* ************************************************************************** */
1212
@@ -48,26 +48,38 @@ int valid_pos(t_data *data, t_int_p2 pos)
4848void move_forward (t_data * data )
4949{
5050 t_int_p2 end_pos ;
51+ t_p2 end_pos_d ;
5152
52- end_pos .x = data -> start .x - (5.0 * sin (data -> start .dir / 180.0 * M_PI ));
53- end_pos .y = data -> start .y - (5.0 * cos (data -> start .dir / 180.0 * M_PI ));
53+ end_pos_d .x = data -> start .double_pos .x - (5.0 * \
54+ sin (data -> start .dir / 180.0 * M_PI ));
55+ end_pos_d .y = data -> start .double_pos .y - (5.0 * \
56+ cos (data -> start .dir / 180.0 * M_PI ));
57+ end_pos .x = (int )end_pos_d .x ;
58+ end_pos .y = (int )end_pos_d .y ;
5459 if (valid_pos (data , end_pos ) == 1 )
5560 {
5661 data -> start .x = end_pos .x ;
5762 data -> start .y = end_pos .y ;
63+ data -> start .double_pos = end_pos_d ;
5864 }
5965}
6066
6167void move_backward (t_data * data )
6268{
6369 t_int_p2 end_pos ;
70+ t_p2 end_pos_d ;
6471
65- end_pos .x = data -> start .x + (5.0 * sin (data -> start .dir / 180.0 * M_PI ));
66- end_pos .y = data -> start .y + (5.0 * cos (data -> start .dir / 180.0 * M_PI ));
72+ end_pos_d .x = data -> start .double_pos .x + (5.0 * \
73+ sin (data -> start .dir / 180.0 * M_PI ));
74+ end_pos_d .y = data -> start .double_pos .y + (5.0 * \
75+ cos (data -> start .dir / 180.0 * M_PI ));
76+ end_pos .x = (int )end_pos_d .x ;
77+ end_pos .y = (int )end_pos_d .y ;
6778 if (valid_pos (data , end_pos ) == 1 )
6879 {
6980 data -> start .x = end_pos .x ;
7081 data -> start .y = end_pos .y ;
82+ data -> start .double_pos = end_pos_d ;
7183 }
7284}
7385
@@ -76,14 +88,10 @@ void move_player(void *arg)
7688 t_data * data ;
7789
7890 data = arg ;
79- if (mlx_is_key_down (data -> mlx42 .mlx_ptr , MLX_KEY_D ))
80- move_right (data );
81- if (mlx_is_key_down (data -> mlx42 .mlx_ptr , MLX_KEY_A ))
82- move_left (data );
8391 if (mlx_is_key_down (data -> mlx42 .mlx_ptr , MLX_KEY_W ))
84- move_up (data );
92+ move_forward (data );
8593 if (mlx_is_key_down (data -> mlx42 .mlx_ptr , MLX_KEY_S ))
86- move_down (data );
94+ move_backward (data );
8795 if (mlx_is_key_down (data -> mlx42 .mlx_ptr , MLX_KEY_LEFT ))
8896 data -> start .dir = (data -> start .dir + 2 ) % 360 ;
8997 if (mlx_is_key_down (data -> mlx42 .mlx_ptr , MLX_KEY_RIGHT ))
0 commit comments