FPS counter is now shows on screen

This commit is contained in:
djonker 2023-10-29 17:22:15 +01:00
parent 0148ee755e
commit 6404a697a4
5 changed files with 42 additions and 20 deletions

View File

@ -4,34 +4,48 @@ Cub3D is a simple raycasting game using the mlx library
--- ---
## Todo ## Todo
### Parsing ### Parsing
- Parse the .cub file for the floor and ceiling colors - Flood fill the map starting from the player to check if it is a closed map
- Parse the .cub file for the 4 textures
- Parse the .cub file for the map
- Flood fill the map and test if it is closed
- Check if all needed elements are present in the closed part of the map - Check if all needed elements are present in the closed part of the map
### Raycasting ### Raycasting
- Render the walls correctly - Replace walls with textures
- Render the walls correctly with movement
- Render the walls correctly with rotation
### Bonus ### Bonus
- Doors - Doors
- Wall Collision
- Minimap - Minimap
- Animated Sprites - Animated Sprites
- Rotate with the mouse
### Extra ### Extra
- FPS counter
- A Menu?
- Levels? - Levels?
- Skybox?
- Enemies? - Enemies?
- Moving Enemies?
- Weapon Sprite that fires? - Weapon Sprite that fires?
- Barrels? - Barrels?
- Skybox?
- Sounds?
- Music?
- A Menu?
- Jumping? - Jumping?
- Vertical Aiming? - Vertical Aiming?
---
## Features
### Mandatory
- Parsing .cub file for colors and sprites
- Parsing .cub file for the map
- Set floor and ceiling color based on .cub file
- Set Player starting direction based on letter in map
- Render walls by raycasting
- Walk in 4 directions
- Rotate with arrow keys
### Bonus
- Wall Collision
- Rotate with the mouse
### Extra
- FPS counter
- Player can walk in 8 directions
- Player can Run
--- ---
## Bugs ## Bugs
- Player gets stuck in walls
--- ---
## Usage ## Usage

View File

@ -6,7 +6,7 @@
/* By: houtworm <codam@houtworm.net> +#+ */ /* By: houtworm <codam@houtworm.net> +#+ */
/* +#+ */ /* +#+ */
/* Created: 2023/10/26 10:46:35 by houtworm #+# #+# */ /* Created: 2023/10/26 10:46:35 by houtworm #+# #+# */
/* Updated: 2023/10/29 15:54:07 by houtworm ######## odam.nl */ /* Updated: 2023/10/29 17:04:28 by houtworm ######## odam.nl */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -24,6 +24,8 @@ typedef struct s_varlist
{ {
mlx_t *mlx; mlx_t *mlx;
mlx_image_t *img; mlx_image_t *img;
mlx_image_t *fps;
int fpsrefresh;
int w; int w;
int h; int h;
char **map; char **map;

View File

@ -6,7 +6,7 @@
/* By: houtworm <codam@houtworm.net> +#+ */ /* By: houtworm <codam@houtworm.net> +#+ */
/* +#+ */ /* +#+ */
/* Created: 2023/10/26 16:49:12 by houtworm #+# #+# */ /* Created: 2023/10/26 16:49:12 by houtworm #+# #+# */
/* Updated: 2023/10/29 15:23:35 by houtworm ######## odam.nl */ /* Updated: 2023/10/29 17:17:54 by houtworm ######## odam.nl */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */

View File

@ -6,7 +6,7 @@
/* By: houtworm <codam@houtworm.net> +#+ */ /* By: houtworm <codam@houtworm.net> +#+ */
/* +#+ */ /* +#+ */
/* Created: 2023/10/26 14:13:07 by houtworm #+# #+# */ /* Created: 2023/10/26 14:13:07 by houtworm #+# #+# */
/* Updated: 2023/10/29 15:56:15 by houtworm ######## odam.nl */ /* Updated: 2023/10/29 17:18:22 by houtworm ######## odam.nl */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -14,11 +14,18 @@
void ft_frametime(t_varlist *vl) void ft_frametime(t_varlist *vl)
{ {
char *itoa;
char *print;
vl->frametime = vl->mlx->delta_time; vl->frametime = vl->mlx->delta_time;
ft_putnbr(1 / vl->frametime);
ft_putendl(" FPS");
vl->movespeed = vl->frametime * 3.0; vl->movespeed = vl->frametime * 3.0;
vl->rotspeed = vl->frametime * 3.0; vl->rotspeed = vl->frametime * 3.0;
mlx_delete_image(vl->mlx, vl->fps);
itoa = ft_itoa(1 / vl->frametime);
print = ft_strjoin(itoa, " FPS");
vl->fps = mlx_put_string(vl->mlx, print, 10, 10);
mlx_set_instance_depth(vl->fps->instances, 2);
ft_vafree(2, itoa, print);
} }
void mainloop(void *param) void mainloop(void *param)
@ -33,6 +40,7 @@ void mainloop(void *param)
ft_movementkeys(vl); ft_movementkeys(vl);
if (!vl->img || (mlx_image_to_window(vl->mlx, vl->img, 0, 0) < 0)) if (!vl->img || (mlx_image_to_window(vl->mlx, vl->img, 0, 0) < 0))
ft_errorexit("image to window failed ", "mainloop", 1); ft_errorexit("image to window failed ", "mainloop", 1);
mlx_set_instance_depth(vl->img->instances, 1);
} }
int main(int argc, char **argv) int main(int argc, char **argv)

View File

@ -6,18 +6,16 @@
/* By: houtworm <codam@houtworm.net> +#+ */ /* By: houtworm <codam@houtworm.net> +#+ */
/* +#+ */ /* +#+ */
/* Created: 2023/10/26 16:48:55 by houtworm #+# #+# */ /* Created: 2023/10/26 16:48:55 by houtworm #+# #+# */
/* Updated: 2023/10/29 15:14:40 by houtworm ######## odam.nl */ /* Updated: 2023/10/29 16:32:12 by houtworm ######## odam.nl */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
#include "../cub3d.h" #include "../cub3d.h"
#include <stdio.h>
int ft_settexture(t_varlist *vl, char *line, int direction) int ft_settexture(t_varlist *vl, char *line, int direction)
{ {
int i; int i;
printf("line: %s\n", line);
i = 0; i = 0;
while (line[i] != '.') while (line[i] != '.')
i++; i++;