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> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* 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
{
int n_frames;
int animation_speed;
double dist;
double cam_frac;
int alpha;
@ -145,7 +146,7 @@ typedef struct s_game
t_player *player;
t_screen *screen;
t_keyboard *keyboard;
int framecount;
double elapsed_time;
int fps;
} t_game;
typedef struct s_game_manager

View File

@ -6,7 +6,7 @@
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* 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 */
/* */
/* ************************************************************************** */
@ -14,7 +14,7 @@
// #include "glad.h"
// #include "MLX42_Int.h"
int game_create(t_game **game)
int game_create(t_game **game)
{
*game = malloc(sizeof(t_game));
if (!game)
@ -24,7 +24,7 @@ int game_create(t_game **game)
return (SUCCESS);
}
void free_game(t_game **game)
void free_game(t_game **game)
{
if (game && *game)
{
@ -38,32 +38,27 @@ void free_game(t_game **game)
}
}
void game_run(t_game *game)
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);
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);
cast_rays(game);
render_map(game);
if (game->player->is_moving)
{
game->screen->img->instances[0].x = sin(game->framecount / 6.0) * 20;
game->screen->img->instances[0].y = cos(game->framecount / 3.0) * 10;
game->screen->img->instances[0].x = sin(game->elapsed_time * 10) * 20;
game->screen->img->instances[0].y = cos(game->elapsed_time * 18) * 10;
}
handle_battery(game);
handle_record(game);
}
void game_free(t_game *game)
void game_free(t_game *game)
{
if (game->screen)
{
@ -86,7 +81,7 @@ void game_free(t_game *game)
free(game);
}
void game_terminate(t_game *game)
void game_terminate(t_game *game)
{
print_scores(game);
game_free(game);

View File

@ -6,7 +6,7 @@
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* 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 y;
flash = (game->framecount / 30) % 2;
flash = ((int) game->elapsed_time) % 2;
y = -15;
while (y <= 15)
{

View File

@ -6,7 +6,7 @@
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* 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> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* 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 *= inv_range.y;
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)
mlx_put_pixel(game->screen->img, column.x, y, color);
y++;

View File

@ -6,7 +6,7 @@
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* 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);
// }
sprite.n_frames = sprite.texture->width / sprite.texture->height;
sprite.animation_speed = 10;
sprite.pos.x = x;
sprite.pos.y = y;
sprite.visible = 1;

View File

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