diff --git a/assets/Run.png b/assets/Run.png new file mode 100644 index 0000000..e9b6ee7 Binary files /dev/null and b/assets/Run.png differ diff --git a/assets/shaders/frag.glsl b/assets/shaders/frag.glsl index 0900c1d..fce6ff3 100644 --- a/assets/shaders/frag.glsl +++ b/assets/shaders/frag.glsl @@ -24,6 +24,7 @@ uniform sampler2D Texture15; uniform float u_time; uniform float u_battery; uniform vec2 u_resolution; +uniform float u_hit_timer; float rand(vec2 co) { return fract(sin(dot(co.xy, vec2(12.9898,78.233))) * 43758.5453); @@ -57,7 +58,12 @@ void main() case 15: texColor = texture(Texture15, TexCoord); break; default: texColor = vec4(1.0, 0.0, 0.0, 1.0); break; } - + //generate a red flash + // if (u_hit_timer > 0.0) { + // float flash = sin(u_hit_timer * 10.0) * 0.5 + 0.5; + // FragColor = vec4(1.0, flash * 0.2, flash * 0.2, texColor.a); + // return; + // } if (TexIndex == 1) { vec2 uv = gl_FragCoord.xy / u_resolution.xy; uv.x *= u_resolution.x / u_resolution.y; diff --git a/inc/types.h b/inc/types.h index 92bcbea..a07e703 100644 --- a/inc/types.h +++ b/inc/types.h @@ -1,12 +1,12 @@ /* ************************************************************************** */ /* */ -/* :::::::: */ -/* types.h :+: :+: */ -/* +:+ */ -/* By: whaffman +#+ */ -/* +#+ */ -/* Created: 2025/04/15 15:52:44 by qmennen #+# #+# */ -/* Updated: 2025/05/29 11:06:24 by whaffman ######## odam.nl */ +/* ::: :::::::: */ +/* types.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: qmennen +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/04/15 15:52:44 by qmennen #+# #+# */ +/* Updated: 2025/06/03 14:41:00 by qmennen ### ########.fr */ /* */ /* ************************************************************************** */ @@ -64,6 +64,7 @@ typedef struct s_player t_vec2 camera; double speed; int is_moving; + float hit_timer; float battery; } t_player; diff --git a/src/game/game.c b/src/game/game.c index 49f485b..e945234 100644 --- a/src/game/game.c +++ b/src/game/game.c @@ -1,18 +1,16 @@ /* ************************************************************************** */ /* */ -/* :::::::: */ -/* game.c :+: :+: */ -/* +:+ */ -/* By: qmennen +#+ */ -/* +#+ */ -/* Created: 2025/04/15 15:46:08 by qmennen #+# #+# */ -/* Updated: 2025/06/03 13:24:01 by whaffman ######## odam.nl */ +/* ::: :::::::: */ +/* game.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: qmennen +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/04/15 15:46:08 by qmennen #+# #+# */ +/* Updated: 2025/06/03 14:16:16 by qmennen ### ########.fr */ /* */ /* ************************************************************************** */ #include "game.h" -// #include "glad.h" -// #include "MLX42_Int.h" int game_create(t_game **game) { diff --git a/src/manager/game_manager.c b/src/manager/game_manager.c index 9f90906..f179aac 100644 --- a/src/manager/game_manager.c +++ b/src/manager/game_manager.c @@ -1,12 +1,12 @@ /* ************************************************************************** */ /* */ -/* :::::::: */ -/* game_manager.c :+: :+: */ -/* +:+ */ -/* By: qmennen +#+ */ -/* +#+ */ -/* Created: 2025/05/27 13:48:18 by qmennen #+# #+# */ -/* Updated: 2025/05/29 11:06:33 by whaffman ######## odam.nl */ +/* ::: :::::::: */ +/* game_manager.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: qmennen +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/05/27 13:48:18 by qmennen #+# #+# */ +/* Updated: 2025/06/03 14:55:46 by qmennen ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/src/menu/main_menu.c b/src/menu/main_menu.c index 4640c09..a96c52e 100644 --- a/src/menu/main_menu.c +++ b/src/menu/main_menu.c @@ -6,7 +6,7 @@ /* By: qmennen +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/05/28 14:14:11 by qmennen #+# #+# */ -/* Updated: 2025/05/28 15:00:41 by qmennen ### ########.fr */ +/* Updated: 2025/06/03 14:19:45 by qmennen ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/src/menu/menu.c b/src/menu/menu.c index 8218c9d..c31d8c6 100644 --- a/src/menu/menu.c +++ b/src/menu/menu.c @@ -6,7 +6,7 @@ /* By: qmennen +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/05/27 14:31:53 by qmennen #+# #+# */ -/* Updated: 2025/05/28 15:21:30 by qmennen ### ########.fr */ +/* Updated: 2025/06/03 14:22:52 by qmennen ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/src/moves.c b/src/moves.c index e67d974..890eec8 100644 --- a/src/moves.c +++ b/src/moves.c @@ -1,12 +1,12 @@ /* ************************************************************************** */ /* */ -/* :::::::: */ -/* moves.c :+: :+: */ -/* +:+ */ -/* By: whaffman +#+ */ -/* +#+ */ -/* Created: 2025/05/14 20:08:27 by whaffman #+# #+# */ -/* Updated: 2025/06/03 13:43:26 by whaffman ######## odam.nl */ +/* ::: :::::::: */ +/* moves.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: qmennen +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/05/14 20:08:27 by whaffman #+# #+# */ +/* Updated: 2025/06/03 14:54:45 by qmennen ### ########.fr */ /* */ /* ************************************************************************** */ @@ -96,4 +96,8 @@ void player_update(t_game *game, double delta_time) game->screen->flash = 3; game->player->battery -= 0.1f; } + if (game->player->hit_timer > 0) + { + game->player->hit_timer -= 1; + } } diff --git a/src/player.c b/src/player.c index 0be5d2d..ee421c1 100644 --- a/src/player.c +++ b/src/player.c @@ -1,12 +1,12 @@ /* ************************************************************************** */ /* */ -/* :::::::: */ -/* player.c :+: :+: */ -/* +:+ */ -/* By: qmennen +#+ */ -/* +#+ */ -/* Created: 2025/04/15 18:53:19 by qmennen #+# #+# */ -/* Updated: 2025/05/23 15:22:22 by whaffman ######## odam.nl */ +/* ::: :::::::: */ +/* player.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: qmennen +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/04/15 18:53:19 by qmennen #+# #+# */ +/* Updated: 2025/06/03 14:55:17 by qmennen ### ########.fr */ /* */ /* ************************************************************************** */ @@ -24,6 +24,7 @@ int player_create(t_game **game) player->pos.y = -1; player->speed = 3.f; player->battery = .5f; + player->hit_timer = 10.0f; (*game)->player = player; return (SUCCESS); } diff --git a/src/shader/shaders.c b/src/shader/shaders.c index ace3982..98d8442 100644 --- a/src/shader/shaders.c +++ b/src/shader/shaders.c @@ -6,7 +6,7 @@ /* By: qmennen +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/05/08 18:27:59 by qmennen #+# #+# */ -/* Updated: 2025/05/28 14:37:33 by qmennen ### ########.fr */ +/* Updated: 2025/06/03 14:41:38 by qmennen ### ########.fr */ /* */ /* ************************************************************************** */ @@ -25,6 +25,8 @@ void set_uniforms(t_game *game) game->player->battery); glUniform2f(glGetUniformLocation(ctx->shaderprogram, "u_resolution"), game->screen->width, game->screen->height); + glUniform1f(glGetUniformLocation(ctx->shaderprogram, "u_hit_timer"), + game->player->hit_timer); } static const char *read_vertex_shader(void) @@ -32,19 +34,19 @@ static const char *read_vertex_shader(void) const char *target = "./assets/shaders/vert.glsl"; char *shader; int fd; + int file_size; size_t bytes_read; + file_size = get_file_size(target); fd = open(target, O_RDONLY); if (fd < 0) - { return (perror("Error opening shader file"), NULL); - } - shader = malloc(4096); + shader = malloc(file_size * sizeof(char) + 1); if (!shader) { return (perror("Error allocating memory for shader"), close(fd), NULL); } - bytes_read = read(fd, shader, 4096); + bytes_read = read(fd, shader, file_size); if (bytes_read < 0) { return (perror("Error reading shader file"), @@ -59,19 +61,21 @@ static const char *read_fragment_shader(void) const char *target = "./assets/shaders/frag.glsl"; char *shader; int fd; + int file_size; size_t bytes_read; + file_size = get_file_size(target); fd = open(target, O_RDONLY); if (fd < 0) { return (perror("Error opening shader file"), NULL); } - shader = malloc(4096); + shader = malloc(file_size * sizeof(char) + 1); if (!shader) { return (perror("Error allocating memory for shader"), close(fd), NULL); } - bytes_read = read(fd, shader, 4096); + bytes_read = read(fd, shader, file_size); if (bytes_read < 0) { return (perror("Error reading shader file"), diff --git a/test.cub b/test.cub index 2610275..5ca9cb5 100644 --- a/test.cub +++ b/test.cub @@ -18,7 +18,7 @@ CT ./assets/ceiling64x64.png -s a ./assets/lamp.png -c b ./assets/accu.png -s p ./assets/plant.png --e g ./assets/mushroom.png +-e g ./assets/Run.png -s m ./assets/broken_mirror.png -s t ./assets/test.png -e e ./assets/flying_eye.png