]> git.dkaiser.de - 42/so_long.git/commitdiff
Outsource drawing
authorDominik Kaiser <dkaiser@1-C-7.42heilbronn.de>
Thu, 9 May 2024 16:21:30 +0000 (18:21 +0200)
committerDominik Kaiser <dkaiser@1-C-7.42heilbronn.de>
Thu, 9 May 2024 16:21:30 +0000 (18:21 +0200)
Makefile
include/so_long.h
src/draw.c [new file with mode: 0644]
src/loop.c

index 6315601c415da6e5467f65c0ad345aa93519fc2e..f220f29ac161a735645f05c539ca07315d3fa610 100644 (file)
--- 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))
index 11d90842483cb46c227ef18ab5626e873579e00f..1661dbece7acf54cc2df26c514ffd7d343749cac 100644 (file)
@@ -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 (file)
index 0000000..759f03f
--- /dev/null
@@ -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);
+}
index a55360ba95d332773d319806b620f8c331202404..89eabba80e799604a337caeaf2d2086761dda422 100644 (file)
@@ -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       */
 /*                                                                            */
 /* ************************************************************************** */
 
 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);
 }