Devoir 2 - Avion avec moteur

  • Deadline: 12 decembre 2019, 23:55
  • Remarque: Toute information non couverte dans ce document est à votre discrétion!

Dans le devoir 2, vous devez implémenter un jeu dans lequel vous êtes un aviateur qui ne doit pas heurter d'obstacles ni manquer de carburant pour l'avion.

Démo (avec bonus):

Gameplay

Le jeu sera un coureur sans fin avec un avion dans un mouvement continu de gauche à droite. Pour le contrôle, l'avion suivra la souris lorsqu'il montera et descendra. Lorsque l'avion montera, il sera tourné en conséquence avec l'avant de l'avion faisant face au ciel. Quand il descendra, l'avion sera tourné vers la mer.

Le pilote aura un total de 3 vies. Dans la scène, il y aura des obstacles périodiques que le pilote doit éviter. S'il ne parvient pas à les éviter et à les entrer, il perd la vie. Quand il est à court de la vie, le jeu est terminé.

En outre, le pilote doit également tenir compte de la quantité de carburant dont il dispose. Le carburant est consommé constamment dans le temps ou au moment de l'accélération. Au moment où il manque de carburant, le jeu est terminé. Afin de ne pas manquer de carburant, le pilote doit collecter le plus de carburant possible.

Pour mettre en évidence la fin du jeu, une animation du crash de l'avion sera mise en œuvre en le faisant pivoter et le lâcher (voir un exemple à la fin de la démo).

Le joueur aura une salle à la première personne et une salle à la troisième personne similaire à celle de la démo. Vous pouvez basculer entre les deux pièces en appuyant sur la touche C.

La construction de la scène

  • L'avion: Pour créer le avion, vous utiliserez plusieurs formes simples. Par exemple, vous pouvez utiliser des cubes de différentes tailles et couleurs. Ainsi, vous pouvez avoir deux cubes d'ailes, un cube de queue, un cube de corps, un cube de tête, un cube d'hélice et un cube d'hélice. De plus, l'hélice de l'avion doit tourner en permanence (exemple dans la figure ci-dessous).

  • Nuages: Les nuages ​​seront également construits sous plusieurs formes simples. Vous pouvez les construire en utilisant 4 cubes positionnés aléatoirement les uns à côté des autres. Un exemple de nuage que vous avez dans la figure ci-dessous. Les nuages ​​doivent avoir une animation (par exemple, la rotation de certains cubes dans leur composition).

  • Mer: Pour créer la mer au-dessus de laquelle l'avion vole, vous utiliserez un cylindre que vous placerez au centre de l'écran. Par réalisme, la mer générera des vagues et tournera en permanence. Les ondes seront créées dans Vertex Shader par déformations aléatoires, mais pour assurer la continuité dans le temps (par exemple, les extrémités internes du cylindre avec des positions déformées comme sur la figure peuvent être définies, puis une rotation autour de la position initiale du vertex shader peut être appliquée). chaque sommet du cylindre, chaque rotation ayant une vitesse et un rayon aléatoires définis pour ce sommet)

  • Obstacles: Les obstacles seront représentés sur la scène par des objets rouges (par exemple, des sphères) avec une animation en rotation. Quand ils entrent en collision avec l'avion, ils disparaissent et le joueur perd la vie.
  • Carburant: l'avion peut être alimenté en volant en récupérant des éléments de carburant. Ils seront représentés par des objets de couleur turquoise, ils seront disposés dans un environnement cintré et ils auront une animation de rotation permanente. Ils peuvent être représentés, par exemple, par des objets de théière. Au moment de la collision avec l'avion, ils disparaissent et le carburant de l'avion va augmenter.

Plus d'informations sur les collisions et leur implémentation en 3D:

L'interface utilisateur

La durée de vie restante et le carburant disponible seront affichés à l'écran. Pour cela, vous pouvez utiliser toutes les formes et méthodes pour exprimer cela: nous suggérons l’utilisation de sphères à vie et de deux rectangles superposés au carburant (un noir à l’arrière et un en couleur à l’avant, qui seront redimensionnés pour mettre en évidence la consommation de carburant).

Bonus possibles

En plus des obstacles ou du carburant, il peut y avoir d'autres objets spécifiques sur la scène qui apportent certains avantages / inconvénients (par exemple, une sphère jaune peut apporter une vie supplémentaire ou un cube vert rend l'avion invincible pendant un certain temps, ou il peut tirer projectiles pour la destruction d'obstacles, etc.).

  • Avion réaliste: le corps du l'avion ne sera pas un simple cube / parallélépipède, mais sera plus étroit vers la queue et plus large vers le devant. De plus, l'hélice de l'avion doit tourner en fonction de l'accélération de l'avion (par exemple, si elle accélère, elle tourne plus vite, sinon plus lentement).

  • Pilote: Le pilote sera créé de la même manière que l’avion, en utilisant plusieurs formes simples de différentes tailles et couleurs. Parce que le pilote de l'avion est un pilote fabuleux, il aura les enjeux dans le vent. Ainsi, en utilisant une simple translation des formes qui composent les cheveux, cela donnera l’impression que ses cheveux sont dans le vent, ou des déformations peuvent également être utilisées dans Vertex Shader pour simuler le mouvement des cheveux.

  • Augmentation de la difficulté de jeu au fil du temps
  • L'avion éteint la fumée quand il accélère
  • Au moment de la collision, les objets se cassent en plusieurs morceaux (comme dans la vidéo)
  • Eclairage: l'avion a des projecteurs devant lui

Évaluation (150p)

  • Construction d'avion (total 30p)
    • Composant (10p)
    • Déplacement (10p)
    • Animations (10p)
  • Construction de l'environnement (total 70p)
    • Mer (objet + déformation animée dans le shader) (30p)
    • Nuages (15p)
    • Carburant (15p)
    • Obstacles (10p)
  • Interface utilisateur (10p)
  • Implantation de caméra à la troisième personne (20p)
  • Implémentation de caméra à la première personne (20p)

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.

egc/teme/fr/2019/02.txt · Last modified: 2019/11/21 07:03 by alexandru.gradinaru
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0