Conversion readme (pandoc)
224
README.md
|
@ -1,2 +1,222 @@
|
|||
# Nidrobb
|
||||
C++ 11, SDL 2, Boost.test
|
||||
{width="6.270833333333333in"
|
||||
height="1.2083333333333333in"}
|
||||
|
||||
**Compte-Rendu Projet C++**
|
||||
|
||||
Harlé Antoine - Hanna Élias
|
||||
|
||||
**Sommaire**
|
||||
|
||||
**[Getting started](#getting-started) 2**
|
||||
|
||||
**[How to play](#how-to-play) 2**
|
||||
|
||||
**[Description du projet](#description-du-projet) 3**
|
||||
|
||||
**[Organisation](#organisation) 4**
|
||||
|
||||
**Getting started**
|
||||
===================
|
||||
|
||||
***Prérequis :*** C++ 11 , SDL2, Boost.test
|
||||
|
||||
***Lancement de Nidrobb :***
|
||||
|
||||
- Lancer la commande *make* à la racine du fichier *src* pour compiler
|
||||
> les fichiers sources.
|
||||
|
||||
- Lancer la commande *./Nidrobb*.
|
||||
|
||||
***Lancement des tests unitaires :***
|
||||
|
||||
- Choix du test de classe à lancer : dans le fichier *makefile* à la
|
||||
> racine du fichier *src*, choisir [un]{.ul} test à réaliser parmis
|
||||
> les tests disponible en commentaire (\#Unitests/TestDispo.cpp) en
|
||||
> le plaçant non commenté devant *TESTSRC =* .
|
||||
|
||||
{width="7.192708880139983in"
|
||||
height="0.6940332458442695in"}
|
||||
|
||||
- Lancer la commande *make Unitest* à la racine du fichier *src* afin
|
||||
> de compiler et lancer le test.
|
||||
|
||||
**How to play**
|
||||
===============
|
||||
|
||||
**But du jeu :**
|
||||
|
||||
(*But initial*) Tuer le joueur adverse et progresser dans la zone du
|
||||
joueur adverse.
|
||||
|
||||
(*But actuel*) Toucher le joueur adverse en premier.
|
||||
|
||||
**Mécanique de jeu :**{width="0.768591426071741in"
|
||||
height="0.6979166666666666in"}
|
||||
|
||||
- *One Punch Man* : Un coup suffit à mettre au tapis ton adversaire !
|
||||
|
||||
```{=html}
|
||||
<!-- -->
|
||||
```
|
||||
- *Du fun en illimité !* : Respawn des joueurs tués instantané.
|
||||
|
||||
{width="1.3125in" height="0.8940212160979878in"}
|
||||
|
||||
- *Combat aériens* : Possibilité de se battre dans les airs ! Après
|
||||
> avoir pris un peu de hauteur, court et bat toi dans les air tel
|
||||
> Son Goku©️ !
|
||||
|
||||
{width="1.5625in" height="0.90625in"}
|
||||
|
||||
- *Parade* : Possibilité de contrer une attaque adverse avec une
|
||||
> attaque au bon moment !
|
||||
|
||||
{width="1.3125in" height="1.1875in"}
|
||||
|
||||
- *Esquive* : Possibilité d\'esquiver une attaque en s'accroupissant
|
||||
> au bon moment !
|
||||
|
||||
**Commandes :**{width="3.4691797900262467in"
|
||||
height="2.369792213473316in"}
|
||||
|
||||
- **Déplacement :**
|
||||
|
||||
- J1 : Q / D
|
||||
|
||||
- J2 : ← / →
|
||||
|
||||
- **Accroupis :**
|
||||
|
||||
- J1 : S
|
||||
|
||||
- J2 : ↓
|
||||
|
||||
- **Sauts :**
|
||||
|
||||
- J1 : Barre Espace
|
||||
|
||||
- J2 : Enter (Pavé numérique)
|
||||
|
||||
- **Attaque :**
|
||||
|
||||
- J1 : G
|
||||
|
||||
- J2 : 0 (Pavé Numérique)
|
||||
|
||||
**Description du projet**
|
||||
=========================
|
||||
|
||||
Le jeu est basée sur les animations et a pour objectif de faciliter
|
||||
l'ajout/amélioration de contenu.
|
||||
|
||||
**Réalisations :**
|
||||
|
||||
- Affichage
|
||||
|
||||
- Gestion des entrées utilisateurs flexible : *InputMap, Command
|
||||
> Pattern*
|
||||
|
||||
- Mouvements simples
|
||||
|
||||
- Animations flexible : Modification simple des animations (Sprite,
|
||||
> Hitbox Passive/Active) dans l'*AnimationBuilder*.
|
||||
|
||||
- Monde flexible : Modification simple des environnements (fond,
|
||||
> plateforme, obstacles) dans le *WorldBuilder*.
|
||||
|
||||
- Ajout simple de joueurs ordinateurs.
|
||||
|
||||
**Bug :**
|
||||
|
||||
- *Gestion des fuites mémoires impossible* : Lancement de *valgrind*
|
||||
> avec Nidrobb échoue systématiquement.
|
||||
|
||||
```{=html}
|
||||
<!-- -->
|
||||
```
|
||||
- Bugs de collisions : sortie de la carte, saut sur obstacles
|
||||
|
||||
- Bug de chute : pas de chute tant qu'il y a des actions.
|
||||
|
||||
**Améliorations :**
|
||||
|
||||
- Menu de jeu{width="1.72249343832021in"
|
||||
> height="0.75in"}
|
||||
|
||||
- Tests complets et unifiés
|
||||
|
||||
- Postures de joueurs (haute/milieu/basse)
|
||||
|
||||
- Attaques haute / basses
|
||||
|
||||
- Animations de morts
|
||||
|
||||
- Raffinement des frames (Sprites & Hitbox Passive/Active)
|
||||
|
||||
- Affichage des hitbox Passive / Active
|
||||
|
||||
**Inspirations du système de hitbox
|
||||
:**{width="3.7314818460192476in"
|
||||
height="2.0989588801399823in"}
|
||||
|
||||
**Hitbox passive** = réception de dommages / collisions environnement
|
||||
|
||||
**Hitbox active** = envoie de dommage / parades
|
||||
|
||||
**Organisation**
|
||||
================
|
||||
|
||||
Pour commencer, nous nous sommes répartis les rôles comme suit :
|
||||
|
||||
- Harlé Antoine : Responsable Mécanique de jeu
|
||||
|
||||
- Hanna Elias : Responsable Graphique
|
||||
|
||||
Pour le développement, nous avons commencés par définir nos objectifs à
|
||||
court et long termes puis avons commencé à produire un premier UML sur
|
||||
lequel se baser.
|
||||
|
||||
Nous nous sommes servis de Google Drive pour la mise en commun des
|
||||
données. L'utilisation d'un git semblant peu pertinent pour un projet de
|
||||
cet ampleur et durée.
|
||||
|
||||
A partir de cela, nous tentions de modifier le moins possible les mêmes
|
||||
fichiers afin de faciliter la mise en commun.
|
||||
|
||||
Travail réalisé :
|
||||
|
||||
- Harlé Antoine
|
||||
|
||||
\- Rédaction du README
|
||||
|
||||
\- Gestion de l'UML
|
||||
|
||||
\- Gestion des tests unitaires : *Unitests*
|
||||
|
||||
\- Mise en place des Design Pattern (Command Pattern, Singleton,
|
||||
Factory)
|
||||
|
||||
\- Développement des animations : *AnimationFrame, Animation,
|
||||
AnimationBuilder, (sprite)*
|
||||
|
||||
\- Gestion des graphiques : images joueurs, obstacles, etc.
|
||||
|
||||
*-* Gestion des entrées : *InputMap, Command, RightCommand*, etc.
|
||||
|
||||
-Toolbox
|
||||
|
||||
\- Structure de jeu : Game, *Player, Obstacle, World, WorldBuilder*
|
||||
|
||||
*-* Gestion des collisions (Passive/Active)
|
||||
|
||||
\- Gestion des chutes V2 (isFallingV2)
|
||||
|
||||
\- Fréquence d'affichage
|
||||
|
||||
- Hanna Elias
|
||||
|
||||
\- Gestion de l'affichage : *display, window, sprite*
|
||||
|
||||
\- Gestion des chutes (isFalling)
|
||||
|
||||
\- Toolbox
|
||||
|
|
BIN
README.pdf
BIN
media/hitbox.png
Normal file
After Width: | Height: | Size: 105 KiB |
BIN
media/img1.png
Normal file
After Width: | Height: | Size: 9 KiB |
BIN
media/img2.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
media/img3.png
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
media/img4.png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
media/img5.png
Normal file
After Width: | Height: | Size: 123 KiB |
BIN
media/logo.png
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
media/nidhogg.png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
media/unitest.png
Normal file
After Width: | Height: | Size: 24 KiB |