scrolling fini et propre, faut géré les leaks
This commit is contained in:
parent
403cc84d9b
commit
5c39daa38c
19
so_long.c
19
so_long.c
|
@ -130,29 +130,32 @@ void draw(t_data *data)
|
||||||
int y;
|
int y;
|
||||||
int range;
|
int range;
|
||||||
|
|
||||||
range = 4;
|
range = 3;
|
||||||
x = data->x_player - range;
|
x = data->x_player - range;
|
||||||
while (x < data->x_player + range)
|
while (x < data->x_player + range)
|
||||||
{
|
{
|
||||||
while (x < 0)
|
while (x < -1)
|
||||||
x++;
|
x++;
|
||||||
y = data->y_player - range;
|
y = data->y_player - range;
|
||||||
while (y < data->y_player + range)
|
while (y < data->y_player + range)
|
||||||
{
|
{
|
||||||
while (y < 0)
|
while (y < -1)
|
||||||
y++;
|
y++;
|
||||||
if (x == data->x_player && y == data->y_player)
|
if (x == data->x_player && y == data->y_player)
|
||||||
{
|
{
|
||||||
data->mlx_img = mlx_xpm_file_to_image(data->mlx, "assets/player.xpm", &data->size, &data->size);
|
data->mlx_img = mlx_xpm_file_to_image(data->mlx, "assets/player.xpm", &data->size, &data->size);
|
||||||
mlx_put_image_to_window(data->mlx, data->mlx_win, data->mlx_img, data->w_screen / 2, data->h_screen / 2);
|
mlx_put_image_to_window(data->mlx, data->mlx_win, data->mlx_img, data->w_screen / 2, data->h_screen / 2);
|
||||||
}
|
}
|
||||||
else if (x >= 0 && y >= 0 && y < data->h_map && data->map[y] != NULL)
|
else if (y < 0 || x < 0 || y >= data->h_map || data->map[y][x] == '\n' || data->map[y][x] == '\0')
|
||||||
|
{
|
||||||
|
data->mlx_img = mlx_xpm_file_to_image(data->mlx, "assets/background.xpm", &data->size, &data->size);
|
||||||
|
mlx_put_image_to_window(data->mlx, data->mlx_win, data->mlx_img, (data->w_screen / 2) + ((x - data->x_player) * data->size), (data->h_screen / 2) + ((y - data->y_player) * data->size));
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
if (data->map[y][x] == '\n' || data->map[y][x] == '\0')
|
|
||||||
break;
|
|
||||||
data->mlx_img = mlx_xpm_file_to_image(data->mlx, assets(data->map[y][x]), &data->size, &data->size);
|
data->mlx_img = mlx_xpm_file_to_image(data->mlx, assets(data->map[y][x]), &data->size, &data->size);
|
||||||
if (!data->mlx_img)
|
//if (!data->mlx_img)
|
||||||
data->mlx_img = mlx_xpm_file_to_image(data->mlx, assets('0'), &data->size, &data->size);
|
//data->mlx_img = mlx_xpm_file_to_image(data->mlx, assets('0'), &data->size, &data->size);
|
||||||
mlx_put_image_to_window(data->mlx, data->mlx_win, data->mlx_img, (data->w_screen / 2) + ((x - data->x_player) * data->size), (data->h_screen / 2) + ((y - data->y_player) * data->size));
|
mlx_put_image_to_window(data->mlx, data->mlx_win, data->mlx_img, (data->w_screen / 2) + ((x - data->x_player) * data->size), (data->h_screen / 2) + ((y - data->y_player) * data->size));
|
||||||
}
|
}
|
||||||
y++;
|
y++;
|
||||||
|
|
Loading…
Reference in a new issue