Projet cub3D

Votre premier RayCaster avec miniLibX

Inspiré par Wolfenstein 3D

Introduction

cub3D est un projet qui vous met au défi de créer une représentation graphique 3D d'un labyrinthe en utilisant les principes de Ray-Casting. Ce projet s'inspire du jeu classique Wolfenstein 3D.

Objectifs du projet

  • Comprendre et appliquer les techniques de Ray-Casting.
  • Travailler avec des bibliothèques graphiques en C, notamment miniLibX.
  • Implémenter des mécanismes de jeu de base tels que le déplacement et le rendu.

Étapes pour résoudre le projet

  1. Configurer votre environnement avec miniLibX et libft.
  2. Analyser le fichier de carte (.cub) pour extraire la disposition du labyrinthe et les textures.
  3. Implémenter l'algorithme de Ray-Casting pour rendre la vue 3D.
  4. Gérer les entrées utilisateur pour la navigation (touches WASD, flèches).
  5. Implémenter la gestion des erreurs et assurer une gestion robuste de la mémoire.

Analyse du fichier .cub

Le fichier .cub définit la disposition du labyrinthe, les textures et les couleurs. Votre programme doit interpréter correctement ce fichier pour rendre l'environnement.

NO ./chemin_texture_nord
SO ./chemin_texture_sud
WE ./chemin_texture_ouest
EA ./chemin_texture_est
F 220,100,0
C 225,30,0
1111111111111111111111111
1000000000110000000000001
...

Implémentation du Ray-Casting

Le Ray-Casting est une technique utilisée pour calculer la distance au mur le plus proche depuis la perspective du joueur. Cette information est utilisée pour rendre des bandes verticales représentant les murs.

// Logique simplifiée du Ray-Casting
for (int x = 0; x < largeurEcran; x++) {
    double cameraX = 2 * x / (double)largeurEcran - 1;
    double rayDirX = dirX + planeX * cameraX;
    double rayDirY = dirY + planeY * cameraX;
    ...
}

Démo

Conclusion

cub3D est un projet complexe mais gratifiant qui vous initie aux fondamentaux du rendu 3D en utilisant le Ray-Casting. En suivant les étapes et en comprenant les principes, vous pourrez réussir ce projet avec succès.