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.
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
, andD
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.
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.
The game provides detailed error messages to guide the user in case of loading issues or file manipulation errors:
- Clone the repository:
git clone https://github.com/ftTower/soLong.git cd soLong make minlibx make
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.
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
etD
. - 🧱 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.
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.
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 :
- Clonez le dépôt :
git clone https://github.com/ftTower/soLong.git cd soLong make minlibx make