Skip to content

ftTower/soLong

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧟‍🔬 ft_so_long

🇬🇧 Introduction

This project involves creating a 2D game using the MiniLibX graphics library. The game, called "So Long," aims to guide a character 🧟‍♂️ through a map, collect items 🧪, and reach the exit 🏁. This project will help you develop skills in window management, texture manipulation, and sprite animation.

Main Display

Gameplay Preview


🧟‍♂️ Mandatory Features

The game meets the following requirements:

  • 🧠 2D Gameplay: The game is played from a 2D perspective, either top-down or side-scrolling.
  • 🔬 Character Movement: The player can move the character using the W, A, S, and D keys.
  • 🧱 Obstacles: The character cannot pass through walls.
  • 🧪 Item Collection: The player must collect all items on the map before accessing the exit.
  • 🚪 Exit: The player must reach the exit to complete the level.
  • 🔢 Movement Count: The total number of moves made by the player is displayed in real time.
  • 🪟 Window Management: The game window can be resized and closed properly.
  • 🖼️ Image Loading: The game uses images from the MiniLibX library.
  • 🗺️ Map Parsing: The game can read and interpret .ber maps that define the level layout.
  • ✔️ Map Checking: The game checks if the map is valid and ensures there is a path to the exit.

🧟‍🔬 Bonus Features

These additional features provide a better user experience:

  • 💀 Player Loss: The player can lose if their character is touched by a patrolling enemy 🧟‍♀️.
  • 🎥 Sprite Animations: The game uses animations for both characters and enemies.
  • 👁️ Movement Count Display: The total number of moves is displayed directly in the game window.
  • 🧩 Autotiling: Dynamic texture management based on the configuration of surrounding tiles for a more natural look.

Autotiling Preview


⚠️ Loading and Error Handling

Terminal View

The game provides detailed error messages to guide the user in case of loading issues or file manipulation errors:

Error Example

Error Example

Error Example

Error Example

Error Example


🧪 Installation and Usage

  1. Clone the repository:
    git clone https://github.com/ftTower/soLong.git
    cd soLong
    make minlibx
    make
    
    

🇫🇷 Introduction

Ce projet consiste à développer un jeu en 2D en utilisant la bibliothèque graphique MiniLibX. Le jeu, nommé "So Long", a pour but de guider un personnage 🧟‍♂️ à travers une carte, de collecter des objets 🧪 et de parvenir à l'exit 🏁. Ce projet vous permettra de développer des compétences en gestion de fenêtres, manipulation de textures et animation de sprites.

Gameplay Preview


🧟‍♂️ Fonctionnalités Obligatoires (Mandatory)

Le jeu respecte les exigences suivantes :

  • 🧠 2D Gameplay : Le jeu se déroule en vue 2D, soit en vue de dessus, soit en défilement horizontal.
  • 🔬 Mouvement du Personnage : Le joueur peut déplacer le personnage à l’aide des touches W, A, S et D.
  • 🧱 Obstacles : Le personnage ne peut pas traverser les murs.
  • 🧪 Collection d’Objets : Le joueur doit récupérer tous les objets présents sur la carte avant d’accéder à la sortie.
  • 🚪 Sortie : Le joueur doit atteindre la sortie pour terminer le niveau.
  • 🔢 Comptage des Mouvements : Le nombre total de mouvements effectués par le joueur est affiché en temps réel.
  • 🪟 Gestion de Fenêtre : La fenêtre du jeu peut être correctement redimensionnée et fermée.
  • 🖼️ Chargement d’Images : Le jeu utilise des images provenant de la bibliothèque MiniLibX.
  • 🗺️ Parsing de Cartes : Le jeu peut lire et interpréter des cartes .ber définissant la disposition du niveau.
  • ✔️ Vérification de la Carte : Le jeu vérifie que la carte est valide et qu’un chemin vers la sortie existe.

🧟‍🔬 Fonctionnalités Bonus

Ces fonctionnalités supplémentaires apportent une meilleure expérience utilisateur :

  • 💀 Défaite du Joueur : Le joueur peut perdre si son personnage est touché par un ennemi patrouillant 🧟‍♀️.
  • 🎥 Animations de Sprites : Le jeu utilise des animations pour les personnages et les ennemis.
  • 👁️ Affichage du Nombre de Mouvements : Le nombre total de mouvements est affiché directement dans la fenêtre du jeu.
  • 🧩 Autotiling : Gestion dynamique des textures en fonction de la configuration des tuiles environnantes pour un rendu plus naturel.

Autotiling Preview


⚠️ Chargement et Erreurs

Le jeu propose des messages d'erreur détaillés pour guider l’utilisateur en cas de problème de chargement ou de manipulation des fichiers :

Erreur Exemple Erreur Exemple Erreur Exemple Erreur Exemple Erreur Exemple


🧪 Installation et Utilisation

  1. Clonez le dépôt :
    git clone https://github.com/ftTower/soLong.git
    cd soLong
    make minlibx
    make