we can move and rotate
This commit is contained in:
parent
1665a2d8e6
commit
061d583b3f
@ -16,6 +16,7 @@
|
|||||||
# include "cub3d.h"
|
# include "cub3d.h"
|
||||||
|
|
||||||
int player_create(t_game **game);
|
int player_create(t_game **game);
|
||||||
|
void player_move(keys_t key, t_player *player);
|
||||||
void player_render(t_screen *screen, t_player *player);
|
void player_render(t_screen *screen, t_player *player);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -17,6 +17,9 @@ void keyhandle(mlx_key_data_t keydata, void *param)
|
|||||||
t_game *game;
|
t_game *game;
|
||||||
|
|
||||||
game = (t_game *)param;
|
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);
|
game_terminate(game);
|
||||||
}
|
}
|
||||||
|
|||||||
20
src/player.c
20
src/player.c
@ -29,7 +29,27 @@ int player_create(t_game **game)
|
|||||||
return (SUCCESS);
|
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)
|
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);
|
mlx_put_pixel(screen->img, (int) player->pos.x, (int) player->pos.y, 0xFFFFFFFF);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user