Retour à l’accueil

Étude de projet

Jeu 2D C++ / SDL2

C++ SDL2 Jeu 2D POO

Ce projet m’a servi à transformer des notions de programmation orientée objet en gameplay concret. Le joueur se déplace case par case sur une grille, récupère les bonus et doit éviter les ennemis jusqu’à atteindre une condition de victoire.

Résumé

Un moteur de jeu simple, pensé pour rester lisible

Le livrable s102 - rendu rassemble les fichiers include/, src/ et un README.txt. Le README décrit un jeu 2D sur grille 10x8, avec des cases de 16 pixels, un déplacement à l’aide des flèches et une victoire lorsque tous les bonus ont été collectés.

Fonctionnalités

  • Déplacement case par case de l’avatar.
  • Ennemis à éviter pendant la partie.
  • Bonus à collecter pour valider la victoire.
  • Détection de collision et écran de défaite.
  • Chargement d’images et de fichiers de niveau.

Technologies utilisées

  • C++ pour la structure applicative.
  • SDL2 pour l’affichage et la fenêtre de jeu.
  • Code::Blocks comme environnement de compilation.
  • Fichiers texte pour le dictionnaire et le niveau.

Architecture

Un découpage en classes C++

Moteur et rendu

Moteur pilote la fenêtre et la boucle principale, tandis que Image centralise le chargement et l’affichage des ressources.

Personnages

Personnage pose la base commune. Avatar représente le joueur et Ennemi ajoute la logique d’obstacle à éviter.

Niveau et objets

Niveau, Objet et Tuile servent à organiser la grille, les bonus et les propriétés utilisées pendant la partie.

Recherche

Dictionnaire::recherche effectue une recherche dichotomique sur un vecteur trié, ce qui rend l’accès aux tuiles plus propre qu’un parcours naïf.

Preuves du projet

Fichiers vérifiables

Entrée programme

Point d’entrée — main.cpp

Initialisation du moteur, des images, du niveau, de l’avatar et des ennemis.

Télécharger main.cpp
Test

Tests du Dictionnaire

Programme séparé pour vérifier le comportement du dictionnaire.

Télécharger le test

Ce que ce projet démontre

Des compétences concrètes, pas seulement du code

  • Programmer avec une organisation orientée objet.
  • Découper un projet en classes avec des responsabilités claires.
  • Construire une boucle de jeu, une logique de collision et des conditions de fin.
  • Écrire un algorithme de recherche adapté à une structure triée.
  • Tester un module isolé avant de l’intégrer au reste du jeu.