Table of Contents

Devoir 1 - My Flappy Bird

Dans le premier devoir, vous allez implémenter votre propre version de Flappy Bird. Tout ce qui n'est pas spécifié reste à votre créativité.

Oiseau

L'oiseau sera créé en combinant plusieurs figures géométriques complètes (GL_FILL) générées par vous. Au moins deux primitives géométriques (par exemple, un triangle, un carré, un cercle, etc.), vous devez créer au moins le corps, la tête et le bec de l'oiseau.

Exemple d'oiseau:

L'environnement dans lequel l'oiseau bouge

L’environnement sera créé à partir de paires de rectangles de même largeur mais de hauteur différente, l’un ancré vers le haut et l’autre ancré vers le bas (similaire aux stalactites et stalagmites dans les grottes), comme dans la figure suivante. La hauteur des rectangles peut être définie de manière procédurale, aléatoire ou codée en dur, mais il faut respecter la règle suivante: la distance entre deux paires de rectangles est suffisamment grande pour que l'oiseau puisse passer entre eux.

Gameplay

Le jeu sera un coureur sans fin, ce qui donnera l'impression que l'oiseau se déplace de gauche à droite parmi les paires de rectangles. En fait, l'oiseau ne bouge pas de gauche à droite, mais la scène se déplace de droite à gauche. L'oiseau est affecté par la gravité. Elle aura toujours tendance à se pencher et à tomber. Si vous appuyez sur la touche ESPACE, l'oiseau se lèvera en se penchant vers le haut. Si l'oiseau frappe des rectangles, il meurt. Au fur et à mesure que le temps de survie de l'oiseau diminue, le score du joueur diminue également. Le score du joueur sera affiché périodiquement dans la console. Lorsque l'oiseau meurt, un message s'affiche dans la console, ainsi que le résultat final.

Détails d'implémentation

Bonus

Exemple (à titre indicatif uniquement): https://www.youtube.com/watch?v=I69adfEqwC0

Fonctionnalités obligatoires

Barre de guidage pour la réalisation des fonctionnalités (sur 100 points):

Questions et réponses

Pour les questions, utilisez les forums sur moodle.

Évaluation

Le thème doit être téléchargé sur moodle. Pour être noté, le sujet doit être présenté au laboratoire. Il y aura des laboratoires spéciaux pour présenter les thèmes.

Informations complémentaires

Le devoir sera implémenté dans OpenGL et C ++. Il est conseillé d'utiliser le framework et Visual Studio.

Pour implémenter le devoir, dans le dossier Source / Labs, vous pouvez créer un nouveau dossier, par exemple Tema1, avec les fichiers Tema1.cpp et Tema1.h (pour l'implémentation du POO, vous devriez avoir d'autres fichiers). Pour voir les fichiers nouvellement créés dans Visual Studio dans l'Explorateur de solutions, cliquez avec le bouton droit sur le filtre Labs et sélectionnez Ajouter → Nouveau filtre. Après avoir créé un nouveau filtre, par exemple Tema1, cliquez avec le bouton droit de la souris et sélectionnez Ajouter → Élément existant. Donc, ajoutez tous les fichiers dans le dossier nouvellement créé. Dans le fichier LabList.h, vous devez également ajouter le chemin d'accès à l'en-tête du thème. Par exemple: #include <Labs / Tema1 / Tema1.h>

Archiver le projet

  • l'archive doit normalement contenir toutes les ressources nécessaires à la compilation et à la routine
  • Avant de créer l'archive, assurez-vous de nettoyer le projet
    • faites un clic droit sur le projet dans l' Explorateur de solutions → Nettoyer la solution , ou
    • supprimer le dossier / Visual Studio / obj
  • supprimer le fichier / Visual Studio / Framework_EGC.sdf (s'il existe)
  • supprimer le fichier / Visual Studio / Framework_EGC.VC.db (s'il existe)
  • supprimer le dossier / x64 ou / x86 (s'il existe)
    • l'exécutable final est généré dans le dossier / x86 ou / x64 à la fin de l'édition des liens en fonction de l'architecture sélectionnée pour la compilation (32/64 bits)
  • si l'archive dépasse toujours la limite de 20 Mo (ne devrait pas l'être), vous pouvez également supprimer le dossier / libs ou / Resources car vous pouvez l'ajouter au test. Cela n’est pas recommandé, car il est difficile de vérifier si la version actuelle des bibliothèques / ressources diffère de la version utilisée au moment de la rédaction du thème.

Deadline

13 novembre à 23:55