/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/05/08 14:14:02 by dkaiser #+# #+# */
-/* Updated: 2024/05/15 14:58:14 by dkaiser ### ########.fr */
+/* Updated: 2024/05/15 15:10:27 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
typedef struct s_collider
{
- t_vector position;
- t_ivector size;
-} t_collider;
+ t_vector position;
+ t_ivector size;
+} t_collider;
typedef struct s_actor
{
{
mlx_t *mlx;
void *window;
- t_actor player;
+ t_actor player;
int input_direction;
t_tilemap map;
} t_game;
t_ivector screen_to_grid_pos(t_vector screen_pos, t_ivector tile_size);
enum e_tile get_tile(t_tilemap *map, int x, int y);
int check_collision(t_collider a, t_collider b);
-int check_wall_collision(t_collider collider,
- t_tilemap *map);
+int check_wall_collision(t_collider collider, t_tilemap *map);
void move_and_slide(t_actor *actor, t_tilemap *map,
double delta_time);
int is_on_floor(t_collider collider, t_tilemap *map);
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/05/09 17:58:23 by dkaiser #+# #+# */
-/* Updated: 2024/05/11 16:00:17 by dkaiser ### ########.fr */
+/* Updated: 2024/05/15 15:09:38 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
#include "libft.h"
#include "so_long.h"
-int draw_map(t_game *game)
+int draw_map(t_game *game)
{
- int x;
- int y;
- mlx_texture_t *wall_texture;
- mlx_image_t *wall_image;
+ int x;
+ int y;
+ mlx_texture_t *wall_texture;
+ mlx_image_t *wall_image;
wall_texture = mlx_load_png("textures/wall.png");
wall_image = mlx_texture_to_image(game->mlx, wall_texture);
while (y < game->map.grid_size.y)
{
if (game->map.tiles[y * game->map.grid_size.x + x] == WALL)
- mlx_image_to_window(game->mlx, wall_image, x * game->map.tile_size.x, y * game->map.tile_size.y);
+ mlx_image_to_window(game->mlx, wall_image, x
+ * game->map.tile_size.x, y * game->map.tile_size.y);
y++;
}
x++;
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/05/09 14:50:09 by dkaiser #+# #+# */
-/* Updated: 2024/05/15 14:46:09 by dkaiser ### ########.fr */
+/* Updated: 2024/05/15 15:09:44 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
int init(t_game *game)
{
-
game->mlx = mlx_init(1920, 1080, "so_long", false);
// TODO: make size and title dynamic
game->input_direction = ZERO;
static void init_actor(t_game *game)
{
mlx_texture_t *texture;
- t_actor *player;
+ t_actor *player;
player = &game->player;
texture = mlx_load_png("textures/player.png");
player->img = mlx_texture_to_image(game->mlx, texture);
mlx_resize_image(player->img, player->size.x, player->size.y);
mlx_image_to_window(game->mlx, player->img, player->position.x,
- player->position.y);
+ player->position.y);
}
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/05/14 13:19:34 by dkaiser #+# #+# */
-/* Updated: 2024/05/14 14:44:39 by dkaiser ### ########.fr */
+/* Updated: 2024/05/15 15:04:31 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
return (screen_pos);
}
-t_ivector screen_to_grid_pos(t_vector screen_pos, t_ivector tile_size)
+t_ivector screen_to_grid_pos(t_vector screen_pos, t_ivector tile_size)
{
- t_ivector grid_pos;
+ t_ivector grid_pos;
- grid_pos.x = screen_pos.x / tile_size.x;
- grid_pos.y = screen_pos.y / tile_size.y;
- return (grid_pos);
+ grid_pos.x = screen_pos.x / tile_size.x;
+ grid_pos.y = screen_pos.y / tile_size.y;
+ return (grid_pos);
}
-enum e_tile get_tile(t_tilemap *map, int x, int y)
+enum e_tile get_tile(t_tilemap *map, int x, int y)
{
- return map->tiles[y * map->grid_size.x + x];
+ return (map->tiles[y * map->grid_size.x + x]);
}