/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/05/08 14:14:02 by dkaiser #+# #+# */
-/* Updated: 2024/05/09 17:59:42 by dkaiser ### ########.fr */
+/* Updated: 2024/05/09 19:24:00 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
#ifndef SO_LONG_H
# define SO_LONG_H
+# define PLAYER_MOVE_SPEED 3
+
# include "libft.h"
# include "mlx.h"
t_vector position;
t_vector direction;
t_vector velocity;
+ void *img;
} t_player;
typedef struct s_game
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/05/09 17:58:23 by dkaiser #+# #+# */
-/* Updated: 2024/05/09 18:05:58 by dkaiser ### ########.fr */
+/* Updated: 2024/05/09 19:24:37 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
int draw(t_game *game)
{
+ mlx_clear_window(game->mlx, game->window);
if (game->input_direction & UP)
mlx_string_put(game->mlx, game->window, 150, 100, 0x00FFFFFF, "^");
if (game->input_direction & DOWN)
ft_itoa(game->player.direction.x));
mlx_string_put(game->mlx, game->window, 550, 500, 0x00FFFFFF,
ft_itoa(game->player.direction.y));
-
- mlx_pixel_put(game->mlx, game->window, game->player.position.x, game->player.position.y, 0x00FFFF00);
+ mlx_put_image_to_window(game->mlx, game->window, game->player.img,
+ game->player.position.x, game->player.position.y);
return (0);
}
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/05/09 14:50:09 by dkaiser #+# #+# */
-/* Updated: 2024/05/09 17:48:10 by dkaiser ### ########.fr */
+/* Updated: 2024/05/09 18:37:18 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
init_hooks(game);
init_player(&game->player, 960, 540);
// TODO: make player spawn point dynamic
+ int w, h;
+ game->player.img = mlx_xpm_file_to_image(game->mlx, "textures/player.xpm", &w, &h);
return (0);
}
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/05/09 15:09:24 by dkaiser #+# #+# */
-/* Updated: 2024/05/09 18:03:03 by dkaiser ### ########.fr */
+/* Updated: 2024/05/09 19:08:51 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
int loop(t_game *game)
{
- mlx_clear_window(game->mlx, game->window);
game->player.direction.x = ((game->input_direction & RIGHT) != 0)
- ((game->input_direction & LEFT) != 0);
game->player.direction.y = ((game->input_direction & DOWN) != 0)
- ((game->input_direction & UP) != 0);
- game->player.position.x += game->player.direction.x;
- game->player.position.y += game->player.direction.y;
+ game->player.position.x += game->player.direction.x * PLAYER_MOVE_SPEED;
+ game->player.position.y += game->player.direction.y * PLAYER_MOVE_SPEED;
draw(game);
return (0);