summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Kaiser2024-05-09 18:21:30 +0200
committerDominik Kaiser2024-05-09 18:21:30 +0200
commite2c309d1bec9fb18e39d453a1dfdccfa877f5633 (patch)
treef258e00f7d4ad7bc9c20f9a4d3d7628d8bd25731
parent14ffe0479dc33cb5ed96f85535f84fa91d56c48b (diff)
downloadso_long-e2c309d1bec9fb18e39d453a1dfdccfa877f5633.tar.gz
so_long-e2c309d1bec9fb18e39d453a1dfdccfa877f5633.zip
Outsource drawing
-rw-r--r--Makefile2
-rw-r--r--include/so_long.h3
-rw-r--r--src/draw.c33
-rw-r--r--src/loop.c20
4 files changed, 43 insertions, 15 deletions
diff --git a/Makefile b/Makefile
index 6315601..f220f29 100644
--- a/Makefile
+++ b/Makefile
@@ -7,7 +7,7 @@ LIBS = -Llibft -lft -lm -Lmlx -lmlx
FRMWRKS = -framework OpenGL -framework AppKit
VPATH := src
-SRC = main.c init.c loop.c input.c
+SRC = main.c init.c loop.c input.c draw.c
OBJ_DIR := obj
OBJ := $(addprefix $(OBJ_DIR)/, $(SRC:%.c=%.o))
diff --git a/include/so_long.h b/include/so_long.h
index 11d9084..1661dbe 100644
--- a/include/so_long.h
+++ b/include/so_long.h
@@ -6,7 +6,7 @@
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/05/08 14:14:02 by dkaiser #+# #+# */
-/* Updated: 2024/05/09 17:38:18 by dkaiser ### ########.fr */
+/* Updated: 2024/05/09 17:59:42 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
@@ -48,6 +48,7 @@ typedef struct s_game
int init(t_game *game);
int loop(t_game *game);
+int draw(t_game *game);
int on_key_down(int key, t_game *game);
int on_key_up(int keycode, t_game *game);
diff --git a/src/draw.c b/src/draw.c
new file mode 100644
index 0000000..759f03f
--- /dev/null
+++ b/src/draw.c
@@ -0,0 +1,33 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* draw.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2024/05/09 17:58:23 by dkaiser #+# #+# */
+/* Updated: 2024/05/09 18:05:58 by dkaiser ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include "mlx.h"
+#include "so_long.h"
+
+int draw(t_game *game)
+{
+ if (game->input_direction & UP)
+ mlx_string_put(game->mlx, game->window, 150, 100, 0x00FFFFFF, "^");
+ if (game->input_direction & DOWN)
+ mlx_string_put(game->mlx, game->window, 150, 200, 0x00FFFFFF, "v");
+ if (game->input_direction & LEFT)
+ mlx_string_put(game->mlx, game->window, 100, 150, 0x00FFFFFF, "<");
+ if (game->input_direction & RIGHT)
+ mlx_string_put(game->mlx, game->window, 200, 150, 0x00FFFFFF, ">");
+ mlx_string_put(game->mlx, game->window, 500, 500, 0x00FFFFFF,
+ ft_itoa(game->player.direction.x));
+ mlx_string_put(game->mlx, game->window, 550, 500, 0x00FFFFFF,
+ ft_itoa(game->player.direction.y));
+
+ mlx_pixel_put(game->mlx, game->window, game->player.position.x, game->player.position.y, 0x00FFFF00);
+ return (0);
+}
diff --git a/src/loop.c b/src/loop.c
index a55360b..89eabba 100644
--- a/src/loop.c
+++ b/src/loop.c
@@ -6,7 +6,7 @@
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/05/09 15:09:24 by dkaiser #+# #+# */
-/* Updated: 2024/05/09 17:48:13 by dkaiser ### ########.fr */
+/* Updated: 2024/05/09 18:03:03 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
@@ -17,21 +17,15 @@
int loop(t_game *game)
{
mlx_clear_window(game->mlx, game->window);
- if (game->input_direction & UP)
- mlx_string_put(game->mlx, game->window, 150, 100, 0x00FFFFFF, "^");
- if (game->input_direction & DOWN)
- mlx_string_put(game->mlx, game->window, 150, 200, 0x00FFFFFF, "v");
- if (game->input_direction & LEFT)
- mlx_string_put(game->mlx, game->window, 100, 150, 0x00FFFFFF, "<");
- if (game->input_direction & RIGHT)
- mlx_string_put(game->mlx, game->window, 200, 150, 0x00FFFFFF, ">");
+
game->player.direction.x = ((game->input_direction & RIGHT) != 0)
- ((game->input_direction & LEFT) != 0);
game->player.direction.y = ((game->input_direction & DOWN) != 0)
- ((game->input_direction & UP) != 0);
- mlx_string_put(game->mlx, game->window, 500, 500, 0x00FFFFFF,
- ft_itoa(game->player.direction.x));
- mlx_string_put(game->mlx, game->window, 550, 500, 0x00FFFFFF,
- ft_itoa(game->player.direction.y));
+
+ game->player.position.x += game->player.direction.x;
+ game->player.position.y += game->player.direction.y;
+
+ draw(game);
return (0);
}