frames keep drawing independent of keypresses
BIN
assets/barrel.png
Executable file
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/bluestone.png
Executable file
After Width: | Height: | Size: 2.5 KiB |
BIN
assets/colorstone.png
Executable file
After Width: | Height: | Size: 3.3 KiB |
BIN
assets/eagle.png
Executable file
After Width: | Height: | Size: 3.4 KiB |
BIN
assets/greenlight.png
Executable file
After Width: | Height: | Size: 393 B |
BIN
assets/greystone.png
Executable file
After Width: | Height: | Size: 3.6 KiB |
BIN
assets/mossy.png
Executable file
After Width: | Height: | Size: 4.2 KiB |
BIN
assets/pillar.png
Executable file
After Width: | Height: | Size: 1.5 KiB |
BIN
assets/purplestone.png
Executable file
After Width: | Height: | Size: 4.3 KiB |
BIN
assets/redbrick.png
Executable file
After Width: | Height: | Size: 3.0 KiB |
BIN
assets/wood.png
Executable file
After Width: | Height: | Size: 1.4 KiB |
2
cub3d.h
@ -6,7 +6,7 @@
|
||||
/* By: houtworm <codam@houtworm.net> +#+ */
|
||||
/* +#+ */
|
||||
/* Created: 2023/10/26 10:46:35 by houtworm #+# #+# */
|
||||
/* Updated: 2023/10/26 10:47:00 by houtworm ######## odam.nl */
|
||||
/* Updated: 2023/10/26 13:56:49 by houtworm ######## odam.nl */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
|
100
src/main.c
@ -5,13 +5,92 @@
|
||||
/* +:+ */
|
||||
/* By: houtworm <codam@houtworm.net> +#+ */
|
||||
/* +#+ */
|
||||
/* Created: 2023/10/26 10:46:22 by houtworm #+# #+# */
|
||||
/* Updated: 2023/10/26 10:46:24 by houtworm ######## odam.nl */
|
||||
/* Created: 2023/10/26 14:13:07 by houtworm #+# #+# */
|
||||
/* Updated: 2023/10/26 15:01:26 by houtworm ######## odam.nl */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "../cub3d.h"
|
||||
|
||||
void ft_getnextframe(t_varlist *vl)
|
||||
{
|
||||
int y;
|
||||
int x;
|
||||
|
||||
y = 1;
|
||||
while (vl->h > y)
|
||||
{
|
||||
x = 1;
|
||||
while (vl->w > x)
|
||||
{
|
||||
mlx_put_pixel(vl->img, x, y, 0x000000FF);
|
||||
x++;
|
||||
}
|
||||
y++;
|
||||
}
|
||||
}
|
||||
|
||||
void framehook(void *param)
|
||||
{
|
||||
t_varlist *vl;
|
||||
|
||||
vl = param;
|
||||
mlx_delete_image(vl->mlx, vl->img);
|
||||
vl->img = mlx_new_image(vl->mlx, vl->w, vl->h);
|
||||
ft_getnextframe(vl);
|
||||
if (!vl->img || (mlx_image_to_window(vl->mlx, vl->img, 0, 0) < 0))
|
||||
exit (1);
|
||||
ft_putendl("frame");
|
||||
}
|
||||
|
||||
void keyhook(mlx_key_data_t kd, void *param)
|
||||
{
|
||||
t_varlist *vl;
|
||||
|
||||
vl = param;
|
||||
vl->w =vl->w;
|
||||
if (mlx_is_mouse_down(vl->mlx, MLX_MOUSE_BUTTON_LEFT))
|
||||
ft_putendl("shoot");
|
||||
if (mlx_is_key_down(vl->mlx, MLX_KEY_ESCAPE))
|
||||
{
|
||||
ft_putendl("escape is pressed");
|
||||
mlx_close_window(vl->mlx);
|
||||
return ;
|
||||
}
|
||||
if (kd.key == MLX_KEY_W && kd.action == MLX_PRESS)
|
||||
ft_putendl("W is pressed");
|
||||
if (kd.key == MLX_KEY_A && kd.action == MLX_PRESS)
|
||||
ft_putendl("A is pressed");
|
||||
if (kd.key == MLX_KEY_S && kd.action == MLX_PRESS)
|
||||
ft_putendl("S is pressed");
|
||||
if (kd.key == MLX_KEY_D && kd.action == MLX_PRESS)
|
||||
ft_putendl("D is pressed");
|
||||
}
|
||||
|
||||
void scrollhook(double xdelta, double ydelta, void *param)
|
||||
{
|
||||
t_varlist *vl;
|
||||
|
||||
vl = param;
|
||||
vl = vl;
|
||||
xdelta++;
|
||||
if (ydelta > 0)
|
||||
ft_putendl("scroll up");
|
||||
if (ydelta < 0)
|
||||
ft_putendl("scroll down");
|
||||
}
|
||||
|
||||
void resizehook(int x, int y, void *param)
|
||||
{
|
||||
t_varlist *vl;
|
||||
|
||||
vl = param;
|
||||
vl->h = y;
|
||||
vl->w = x;
|
||||
vl->mlx->height = y;
|
||||
vl->mlx->width = x;
|
||||
}
|
||||
|
||||
t_varlist initvarlist(void)
|
||||
{
|
||||
t_varlist vl;
|
||||
@ -25,21 +104,22 @@ t_varlist initvarlist(void)
|
||||
return (vl);
|
||||
}
|
||||
|
||||
void redrawimage(t_varlist *vl)
|
||||
{
|
||||
mlx_delete_image(vl->mlx, vl->img);
|
||||
vl->img = mlx_new_image(vl->mlx, vl->w, vl->h);
|
||||
}
|
||||
|
||||
int32_t main(void)
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
t_varlist vl;
|
||||
|
||||
if (argc > 2)
|
||||
exit(2);
|
||||
argv = argv;
|
||||
vl = initvarlist();
|
||||
if (!vl.img || (mlx_image_to_window(vl.mlx, vl.img, 0, 0) < 0))
|
||||
exit (1);
|
||||
mlx_key_hook(vl.mlx, &keyhook, &vl);
|
||||
mlx_resize_hook(vl.mlx, &resizehook, &vl);
|
||||
mlx_scroll_hook(vl.mlx, &scrollhook, &vl);
|
||||
mlx_loop_hook(vl.mlx, &framehook, &vl);
|
||||
mlx_loop(vl.mlx);
|
||||
mlx_delete_image(vl.mlx, vl.img);
|
||||
mlx_terminate(vl.mlx);
|
||||
exit (EXIT_SUCCESS);
|
||||
exit (0);
|
||||
}
|
||||
|