affichage etat de la rotation
This commit is contained in:
BIN
builds/fdf.o
BIN
builds/fdf.o
Binary file not shown.
@@ -15,12 +15,14 @@ typedef struct s_map
|
||||
{
|
||||
void *mlx_ptr;
|
||||
void *win_ptr;
|
||||
void *img_ptr;
|
||||
char *img_addr;
|
||||
int win_size_x;
|
||||
int win_size_y;
|
||||
int img_size_x;
|
||||
int img_size_y;
|
||||
void *img_ptr;
|
||||
char *img_addr;
|
||||
int map_size_x;
|
||||
int map_size_y;
|
||||
int img_bpp;
|
||||
int img_sizel;
|
||||
int img_endian;
|
||||
|
||||
65
srcs/fdf.c
65
srcs/fdf.c
@@ -4,23 +4,8 @@ t_map *init_map(void);
|
||||
int print_keycode(int keycode);
|
||||
int shut_down(t_map *map);
|
||||
void draw_pixel(t_map *map, int x, int y, int color);
|
||||
|
||||
int keypress(int keycode, t_map *map)
|
||||
{
|
||||
if (keycode == ESCAPE)
|
||||
shut_down(map);
|
||||
else if (keycode == LEFT)
|
||||
(map->rot_x) -= 1;
|
||||
else if (keycode == RIGHT)
|
||||
(map->rot_x) += 1;
|
||||
else if (keycode == UP)
|
||||
(map->rot_y) -= 1;
|
||||
else if (keycode == DOWN)
|
||||
(map->rot_y) += 1;
|
||||
else
|
||||
print_keycode(keycode);
|
||||
return (0);
|
||||
}
|
||||
int keypress(int keycode, t_map *map);
|
||||
void rotation_state(t_map *map);
|
||||
|
||||
void draw_image(t_map *map)
|
||||
{
|
||||
@@ -33,11 +18,15 @@ void draw_image(t_map *map)
|
||||
x = 0;
|
||||
while ((x * map->img_bpp / 8) < map->img_sizel)
|
||||
{
|
||||
draw_pixel(map, x, y, 0x94dd24);
|
||||
draw_pixel(map, x, y, 0xffffff);
|
||||
x += 4;
|
||||
}
|
||||
y += 4;
|
||||
}
|
||||
// put image on screen
|
||||
mlx_put_image_to_window(map->mlx_ptr, map->win_ptr, map->img_ptr, 0, 0);
|
||||
// put rotation on screen
|
||||
rotation_state(map);
|
||||
}
|
||||
|
||||
int main(int ac, char **av)
|
||||
@@ -57,6 +46,25 @@ int main(int ac, char **av)
|
||||
return (0);
|
||||
}
|
||||
|
||||
int keypress(int keycode, t_map *map)
|
||||
{
|
||||
if (keycode == ESCAPE)
|
||||
shut_down(map);
|
||||
else if (keycode == LEFT)
|
||||
(map->rot_x) -= 1;
|
||||
else if (keycode == RIGHT)
|
||||
(map->rot_x) += 1;
|
||||
else if (keycode == UP)
|
||||
(map->rot_y) += 1;
|
||||
else if (keycode == DOWN)
|
||||
(map->rot_y) -= 1;
|
||||
else
|
||||
print_keycode(keycode);
|
||||
// draw image
|
||||
draw_image(map);
|
||||
return (0);
|
||||
}
|
||||
|
||||
int print_keycode(int keycode)
|
||||
{
|
||||
ft_putnbr(keycode);
|
||||
@@ -72,6 +80,20 @@ void draw_pixel(t_map *map, int x, int y, int color)
|
||||
*(unsigned int*)(map->img_addr + position) = color;
|
||||
}
|
||||
|
||||
void rotation_state(t_map *map)
|
||||
{
|
||||
char *position;
|
||||
int x;
|
||||
int y;
|
||||
|
||||
x = map->img_size_x - 10;
|
||||
y = map->img_size_y - 10;
|
||||
position = ft_strjoin(ft_itoa(map->rot_x), " | ");
|
||||
position = ft_strjoin(position, ft_itoa(map->rot_y));
|
||||
x -= ft_strlen(position) * 6;
|
||||
mlx_string_put(map->mlx_ptr, map->win_ptr, x, y, 0xffffff, position);
|
||||
}
|
||||
|
||||
t_map *init_map(void)
|
||||
{
|
||||
t_map *map;
|
||||
@@ -81,8 +103,8 @@ t_map *init_map(void)
|
||||
map->win_size_x = 500;
|
||||
map->win_size_y = 500;
|
||||
// size image
|
||||
map->img_size_x = 400;
|
||||
map->img_size_y = 400;
|
||||
map->img_size_x = map->win_size_x;
|
||||
map->img_size_y = map->win_size_y;
|
||||
// view rotation
|
||||
map->rot_x = 0;
|
||||
map->rot_y = 0;
|
||||
@@ -95,9 +117,6 @@ t_map *init_map(void)
|
||||
map->img_addr = mlx_get_data_addr(map->img_ptr, &(map->img_bpp), &(map->img_sizel), &(map->img_endian));
|
||||
// draw image
|
||||
draw_image(map);
|
||||
// put image on screen
|
||||
mlx_put_image_to_window(map->mlx_ptr, map->win_ptr, map->img_ptr, 50, 50);
|
||||
|
||||
return (map);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user