we can move and rotate

This commit is contained in:
Quinten Mennen 2025-04-15 19:51:22 +02:00
parent 1665a2d8e6
commit 061d583b3f
3 changed files with 25 additions and 1 deletions

View File

@ -16,6 +16,7 @@
# include "cub3d.h"
int player_create(t_game **game);
void player_move(keys_t key, t_player *player);
void player_render(t_screen *screen, t_player *player);
#endif

View File

@ -17,6 +17,9 @@ void keyhandle(mlx_key_data_t keydata, void *param)
t_game *game;
game = (t_game *)param;
if (keydata.key == MLX_KEY_ESCAPE)
if (keydata.key == MLX_KEY_W || keydata.key == MLX_KEY_S
|| keydata.key == MLX_KEY_LEFT || keydata.key == MLX_KEY_RIGHT)
player_move(keydata.key, game->player);
else if (keydata.key == MLX_KEY_ESCAPE)
game_terminate(game);
}

View File

@ -29,7 +29,27 @@ int player_create(t_game **game)
return (SUCCESS);
}
void player_move(keys_t key, t_player *player)
{
if (key == MLX_KEY_W)
{
player->pos.x += cos(player->angle) * player->speed;
player->pos.y += sin(player->angle) * player->speed;
}
else if (key == MLX_KEY_S)
{
player->pos.x -= cos(player->angle) * player->speed;
player->pos.y -= sin(player->angle) * player->speed;
}
else if (key == MLX_KEY_LEFT)
player->angle -= .1f;
else if (key == MLX_KEY_RIGHT)
player->angle += .1f;
}
void player_render(t_screen *screen, t_player *player)
{
if (player->pos.x < 0 || player->pos.x >= screen->width || player->pos.y < 0 || player->pos.y >= screen->height)
return ;
mlx_put_pixel(screen->img, (int) player->pos.x, (int) player->pos.y, 0xFFFFFFFF);
}