added an enemy

This commit is contained in:
Quinten Mennen 2025-05-28 17:01:09 +02:00
parent 10d8544c61
commit c252a9bed1
9 changed files with 23 additions and 25 deletions

BIN
assets/flying_eye.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

BIN
assets/mushroom.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

@ -6,7 +6,7 @@
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */ /* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2025/04/15 15:52:44 by qmennen #+# #+# */ /* Created: 2025/04/15 15:52:44 by qmennen #+# #+# */
/* Updated: 2025/05/28 14:40:50 by qmennen ### ########.fr */ /* Updated: 2025/05/28 16:44:33 by qmennen ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -61,6 +61,7 @@ typedef struct s_player
typedef struct s_sprite typedef struct s_sprite
{ {
int n_frames; int n_frames;
int animation_speed;
double dist; double dist;
double cam_frac; double cam_frac;
int alpha; int alpha;
@ -145,7 +146,7 @@ typedef struct s_game
t_player *player; t_player *player;
t_screen *screen; t_screen *screen;
t_keyboard *keyboard; t_keyboard *keyboard;
int framecount; double elapsed_time;
int fps; int fps;
} t_game; } t_game;
typedef struct s_game_manager typedef struct s_game_manager

View File

@ -6,7 +6,7 @@
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */ /* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2025/04/15 15:46:08 by qmennen #+# #+# */ /* Created: 2025/04/15 15:46:08 by qmennen #+# #+# */
/* Updated: 2025/05/28 14:28:16 by qmennen ### ########.fr */ /* Updated: 2025/05/28 16:40:12 by qmennen ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -42,22 +42,17 @@ void game_run(t_game *game)
{ {
static int fps = 0; static int fps = 0;
game->framecount++; game->elapsed_time += game->screen->mlx->delta_time;
fps += (int)(1.f / game->screen->mlx->delta_time); fps += (int)(1.f / game->screen->mlx->delta_time);
set_uniforms(game); set_uniforms(game);
if (game->framecount % 20 == 0)
{
game->fps = (int)(fps / 20);
fprintf(stderr, "FPS: %d\n", fps / 20);
fps = 0;
}
player_update(game, game->screen->mlx->delta_time); player_update(game, game->screen->mlx->delta_time);
cast_rays(game); cast_rays(game);
render_map(game); render_map(game);
if (game->player->is_moving) if (game->player->is_moving)
{ {
game->screen->img->instances[0].x = sin(game->framecount / 6.0) * 20; game->screen->img->instances[0].x = sin(game->elapsed_time * 10) * 20;
game->screen->img->instances[0].y = cos(game->framecount / 3.0) * 10; game->screen->img->instances[0].y = cos(game->elapsed_time * 18) * 10;
} }
handle_battery(game); handle_battery(game);
handle_record(game); handle_record(game);

View File

@ -6,7 +6,7 @@
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */ /* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2025/05/28 14:26:29 by qmennen #+# #+# */ /* Created: 2025/05/28 14:26:29 by qmennen #+# #+# */
/* Updated: 2025/05/28 14:28:40 by qmennen ### ########.fr */ /* Updated: 2025/05/28 16:03:03 by qmennen ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -78,7 +78,7 @@ void handle_record(t_game *game)
int x; int x;
int y; int y;
flash = (game->framecount / 30) % 2; flash = ((int) game->elapsed_time) % 2;
y = -15; y = -15;
while (y <= 15) while (y <= 15)
{ {

View File

@ -6,7 +6,7 @@
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */ /* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2025/04/22 13:10:06 by whaffman #+# #+# */ /* Created: 2025/04/22 13:10:06 by whaffman #+# #+# */
/* Updated: 2025/05/28 14:32:43 by qmennen ### ########.fr */ /* Updated: 2025/05/28 16:42:59 by qmennen ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */

View File

@ -6,7 +6,7 @@
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */ /* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2025/05/08 12:23:17 by qmennen #+# #+# */ /* Created: 2025/05/08 12:23:17 by qmennen #+# #+# */
/* Updated: 2025/05/28 15:05:38 by qmennen ### ########.fr */ /* Updated: 2025/05/28 16:45:20 by qmennen ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -60,7 +60,7 @@ static void draw_sprite_column(
tex.y = (y - column.start.y) * sprite->texture->height; tex.y = (y - column.start.y) * sprite->texture->height;
tex.y *= inv_range.y; tex.y *= inv_range.y;
color = sample_texture_color(sprite, tex, color = sample_texture_color(sprite, tex,
(int)(game->framecount / 20) % sprite->n_frames); (int)(game->elapsed_time * sprite->animation_speed) % sprite->n_frames);
if (y > 0 && y < game->screen->height && (color & 0xFF) != 0) if (y > 0 && y < game->screen->height && (color & 0xFF) != 0)
mlx_put_pixel(game->screen->img, column.x, y, color); mlx_put_pixel(game->screen->img, column.x, y, color);
y++; y++;

View File

@ -6,7 +6,7 @@
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */ /* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2025/04/22 17:08:26 by qmennen #+# #+# */ /* Created: 2025/04/22 17:08:26 by qmennen #+# #+# */
/* Updated: 2025/05/28 15:05:21 by qmennen ### ########.fr */ /* Updated: 2025/05/28 16:44:40 by qmennen ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -30,6 +30,7 @@ t_sprite make_sprite(mlx_texture_t *texture, double x, double y,
// exit(EXIT_FAILURE); // exit(EXIT_FAILURE);
// } // }
sprite.n_frames = sprite.texture->width / sprite.texture->height; sprite.n_frames = sprite.texture->width / sprite.texture->height;
sprite.animation_speed = 10;
sprite.pos.x = x; sprite.pos.x = x;
sprite.pos.y = y; sprite.pos.y = y;
sprite.visible = 1; sprite.visible = 1;

View File

@ -18,12 +18,13 @@ CT ./assets/ceiling64x64.png
-s a ./assets/lamp.png -s a ./assets/lamp.png
-c b ./assets/accu.png -c b ./assets/accu.png
-s p ./assets/plant.png -s p ./assets/plant.png
-s g ./assets/mushroom.png
-s m ./assets/broken_mirror.png -s m ./assets/broken_mirror.png
-s t ./assets/test.png -s t ./assets/test.png
1111111 111 1111 111111 1111111111 111111 1111111 111 1111 111111 1111111111 111111
1000001110111001 100001 1000000001 10001 1000001110111001 100001 1000000001 10001
10010000000b0001 100001 100000110111100011 1001000g000b0001 100001 100000110111100011
10b0001110000001110011111111 1100b0001000000001 10b0001110000001110011111111 1100b0001000000001
1000001 1000100a000010000001 10000000100b000001 1000001 1000100a000010000001 10000000100b000001
100m00111000100000b00000b00111110p00000100p00m001 100m00111000100000b00000b00111110p00000100p00m001