diff --git a/headers/configData.h b/headers/configData.h index 246f8b9..eead2c0 100644 --- a/headers/configData.h +++ b/headers/configData.h @@ -9,7 +9,7 @@ typedef string configKey; struct ConfigData { - invadersGrid grid; + InvadersGrid grid; unsigned startXPosition; unsigned playersSpeed; diff --git a/headers/game.h b/headers/game.h index b8f0c7b..27d8dec 100644 --- a/headers/game.h +++ b/headers/game.h @@ -18,8 +18,8 @@ private: PixelManager pm; ConfigData confData; - position basePos; - invadersGrid grid; + Position basePos; + InvadersGrid grid; bool direction = true; vector missiles; @@ -28,11 +28,18 @@ private: PlayMode playMode; vector players; - void managePlayers(); - bool manageInvaders(); + // invaders related variables + unsigned fireCooldown=120; + + // basic methods void display(); - // collision thingies + // managers + void managePlayers(); + void manageOnePlayer(unsigned); + bool manageInvaders(); + + // collision things void remCollidingProjectiles(); void moveMissiles(); void moveTorpedos(); @@ -40,8 +47,6 @@ private: bool checkTorpedosAndInvaders(); bool invadersTouchPlayer(); - void manageOnePlayer(unsigned); - public: // in case someone wants to mess with the code, here's a minimal API, costs nothing to us Game(); diff --git a/headers/play_mode.h b/headers/play_mode.h index 56286e0..39e335e 100644 --- a/headers/play_mode.h +++ b/headers/play_mode.h @@ -1,7 +1,7 @@ #ifndef GUARD_PLAYMODE_H #define GUARD_PLAYMODE_H -enum PlayMode { +enum class PlayMode { NONE, SINGLE, TWO_LOCAL, diff --git a/headers/projectiles.h b/headers/projectiles.h index f30583f..2d51980 100644 --- a/headers/projectiles.h +++ b/headers/projectiles.h @@ -3,9 +3,9 @@ #include "utils.h" -typedef position missile; +typedef Position missile; -class torpedo : public position { +class torpedo : public Position { public: playerID owner; torpedo(int x, int y, playerID owner); diff --git a/headers/utils.h b/headers/utils.h index b7766e6..51074e5 100644 --- a/headers/utils.h +++ b/headers/utils.h @@ -8,7 +8,7 @@ #define PLAYER_HEIGHT 100 #define PROJ_LENGTH_FACTOR 2 -enum WinValue{ +enum class WinValue{ NOBODY, // should never be used PLAYERS, INVADERS, @@ -16,13 +16,17 @@ enum WinValue{ using namespace std; -typedef unsigned Invader; -typedef vector invadersColumn; -typedef vector invadersGrid; -typedef nsGraphics::Vec2D position; +enum class Invader { + TypeA, + TypeB, + TypeC, +}; +typedef vector InvadersColumn; +typedef vector InvadersGrid; +typedef nsGraphics::Vec2D Position; typedef unsigned playerID; -// didn't want to use position because of the semantic with x and y +// didn't want to use Position because of the semantic with x and y bool areLinesColliding(unsigned start1, unsigned end1, unsigned start2, unsigned end2); #endif \ No newline at end of file diff --git a/lib_headers/mingl/graphics/vec2d.h b/lib_headers/mingl/graphics/vec2d.h index e7cb51c..e9f3f80 100755 --- a/lib_headers/mingl/graphics/vec2d.h +++ b/lib_headers/mingl/graphics/vec2d.h @@ -37,7 +37,7 @@ public: /** * @brief Constructeur de recopie pour la classe Vec2D * @param[in] pos : Vec2D a copier - * @fn Vec2D(const Vec2D& position); + * @fn Vec2D(const Vec2D& Position); */ Vec2D(const Vec2D& pos); @@ -56,21 +56,21 @@ public: /** * @brief Opérateur d'addition * @param[in] pos : Vecteur a additionner - * @fn Vec2D operator+(const Vec2D& position) const; + * @fn Vec2D operator+(const Vec2D& Position) const; */ Vec2D operator+(const Vec2D& pos) const; /** * @brief Opérateur de soustraction * @param[in] pos : Vecteur a soustraire - * @fn Vec2D operator-(const Vec2D& position) const; + * @fn Vec2D operator-(const Vec2D& Position) const; */ Vec2D operator-(const Vec2D& pos) const; /** * @brief Opérateur de multiplication * @param[in] pos : Vecteur a multiplier - * @fn Vec2D operator*(const Vec2D& position) const; + * @fn Vec2D operator*(const Vec2D& Position) const; */ Vec2D operator*(const Vec2D& pos) const; @@ -84,7 +84,7 @@ public: /** * @brief Opérateur de division * @param[in] pos : Vecteur a diviser - * @fn Vec2D operator/(const Vec2D& position) const; + * @fn Vec2D operator/(const Vec2D& Position) const; */ Vec2D operator/(const Vec2D& pos) const; @@ -98,21 +98,21 @@ public: /** * @brief Opérateur modulo * @param[in] pos : Vecteur avec lequel faire un modulo - * @fn Vec2D operator%(const Vec2D& position) const; + * @fn Vec2D operator%(const Vec2D& Position) const; */ Vec2D operator%(const Vec2D& pos) const; /** * @brief Opérateur d'égalité * @param[in] pos : Vecteur avec lequel vérifier l'égalité - * @fn bool operator==(const Vec2D& position) const; + * @fn bool operator==(const Vec2D& Position) const; */ bool operator==(const Vec2D& pos) const; /** * @brief Opérateur d'inégalité * @param[in] pos : Vecteur avec lequel vérifier l'inégalité - * @fn bool operator!=(const Vec2D& position) const; + * @fn bool operator!=(const Vec2D& Position) const; */ bool operator!=(const Vec2D& pos) const; @@ -120,7 +120,7 @@ public: * @brief Opérateur de stricte infériorité * (Vérifie la stricte infériorité de la magnitude des deux vecteurs) * @param[in] pos : Vecteur avec lequel vérifier la stricte infériorité - * @fn bool operator<(const Vec2D& position) const; + * @fn bool operator<(const Vec2D& Position) const; */ bool operator<(const Vec2D& pos) const; @@ -128,7 +128,7 @@ public: * @brief Opérateur de stricte supériorité * (Vérifie la stricte supériorité de la magnitude des deux vecteurs) * @param[in] pos : Vecteur avec lequel vérifier la stricte supériorité - * @fn bool operator>(const Vec2D& position) const; + * @fn bool operator>(const Vec2D& Position) const; */ bool operator>(const Vec2D& pos) const; @@ -136,7 +136,7 @@ public: * @brief Opérateur d'infériorité * (Vérifie l'infériorité de la magnitude des deux vecteurs) * @param[in] pos : Vecteur avec lequel vérifier l'infériorité - * @fn bool operator<=(const Vec2D& position) const; + * @fn bool operator<=(const Vec2D& Position) const; */ bool operator<=(const Vec2D& pos) const; @@ -144,49 +144,49 @@ public: * @brief Opérateur de supériorité * (Vérifie la supériorité de la magnitude des deux vecteurs) * @param[in] pos : Vecteur avec lequel vérifier la supériorité - * @fn bool operator>=(const Vec2D& position) const; + * @fn bool operator>=(const Vec2D& Position) const; */ bool operator>=(const Vec2D& pos) const; /** * @brief Opérateur d'assignement * @param[in] pos : Vecteur source - * @fn Vec2D& operator=(const Vec2D& position); + * @fn Vec2D& operator=(const Vec2D& Position); */ Vec2D& operator=(const Vec2D& pos); /** * @brief Opérateur d'addition avec assignement * @param[in] pos : Vecteur avec lequel additionner le vecteur actuel - * @fn Vec2D& operator+=(const Vec2D& position); + * @fn Vec2D& operator+=(const Vec2D& Position); */ Vec2D& operator+=(const Vec2D& pos); /** * @brief Opérateur de soustraction avec assignement * @param[in] pos : Vecteur avec lequel soustraire le vecteur actuel - * @fn Vec2D& operator-=(const Vec2D& position); + * @fn Vec2D& operator-=(const Vec2D& Position); */ Vec2D& operator-=(const Vec2D& pos); /** * @brief Opérateur de multiplication avec assignement * @param[in] pos : Vecteur avec lequel multiplier le vecteur actuel - * @fn Vec2D& operator*=(const Vec2D& position); + * @fn Vec2D& operator*=(const Vec2D& Position); */ Vec2D& operator*=(const Vec2D& pos); /** * @brief Opérateur de division avec assignement * @param[in] pos : Vecteur avec lequel diviser le vecteur actuel - * @fn Vec2D& operator/=(const Vec2D& position); + * @fn Vec2D& operator/=(const Vec2D& Position); */ Vec2D& operator/=(const Vec2D& pos); /** * @brief Opérateur modulo avec assignement * @param[in] pos : Vecteur avec lequel faire un modulo sur le vecteur actuel - * @fn Vec2D& operator%=(const Vec2D& position); + * @fn Vec2D& operator%=(const Vec2D& Position); */ Vec2D& operator%=(const Vec2D& pos); @@ -222,29 +222,29 @@ public: double computeMagnitude() const; /** - * @brief Récupère la position X (abscisse) + * @brief Récupère la Position X (abscisse) * @return Une référence constante vers m_x * @fn int getX() const; */ int getX() const; /** - * @brief Définit la nouvelle position X (abscisse) - * @param[in] x : Nouvelle position X + * @brief Définit la nouvelle Position X (abscisse) + * @param[in] x : Nouvelle Position X * @fn void setX(int x); */ void setX(int x); /** - * @brief Récupère la position Y (ordonnée) + * @brief Récupère la Position Y (ordonnée) * @return Une référence constante vers m_y * @fn int getY() const; */ int getY() const; /** - * @brief Définit la nouvelle position Y (ordonnée) - * @param[in] y : Nouvelle position Y + * @brief Définit la nouvelle Position Y (ordonnée) + * @param[in] y : Nouvelle Position Y * @fn void setY(int y); */ void setY(int y); diff --git a/lib_headers/mingl/gui/sprite.h b/lib_headers/mingl/gui/sprite.h index 0247d09..6fa9eaa 100644 --- a/lib_headers/mingl/gui/sprite.h +++ b/lib_headers/mingl/gui/sprite.h @@ -32,14 +32,14 @@ public: * @brief TransitionIds : Liste de toutes les transitions que cet élément peut exécuter */ enum TransitionIds { - TRANSITION_POSITION, /**< Transition pour la position */ + TRANSITION_POSITION, /**< Transition pour la Position */ }; /** * @brief Constructeur pour la classe Sprite, charge les données depuis un fichier * @param[in] filename : Chemin d'accès vers le fichier image * @param[in] position : Position du sprite - * @fn Sprite(const std::string& filename, const nsGraphics::Vec2D& position = nsGraphics::Vec2D()); + * @fn Sprite(const std::string& filename, const nsGraphics::Vec2D& Position = nsGraphics::Vec2D()); */ Sprite(const std::string& filename, const nsGraphics::Vec2D& position = nsGraphics::Vec2D()); @@ -48,7 +48,7 @@ public: * @param[in] pixelData : Vecteur contenant des données sur les pixels * @param[in] rowSize : Nombre de pixels par ligne * @param[in] position : Position du sprite - * @fn Sprite(const std::vector& pixelData, const uint32_t& rowSize, const nsGraphics::Vec2D& position = nsGraphics::Vec2D()); + * @fn Sprite(const std::vector& pixelData, const uint32_t& rowSize, const nsGraphics::Vec2D& Position = nsGraphics::Vec2D()); */ Sprite(const std::vector& pixelData, const uint32_t& rowSize, const nsGraphics::Vec2D& position = nsGraphics::Vec2D()); @@ -72,16 +72,16 @@ public: const std::vector& getPixelData() const; /** - * @brief Récupère la position du sprite + * @brief Récupère la Position du sprite * @return Une référence const vers m_position * @fn const nsGraphics::Vec2D& getPosition() const; */ const nsGraphics::Vec2D& getPosition() const; /** - * @brief Définit la nouvelle position du sprite - * @param[in] position : Nouvelle position - * @fn void setPosition(const nsGraphics::Vec2D &position); + * @brief Définit la nouvelle Position du sprite + * @param[in] position : Nouvelle Position + * @fn void setPosition(const nsGraphics::Vec2D &Position); */ void setPosition(const nsGraphics::Vec2D& position); diff --git a/lib_headers/mingl/gui/text.h b/lib_headers/mingl/gui/text.h index 6f41357..35fa2e6 100644 --- a/lib_headers/mingl/gui/text.h +++ b/lib_headers/mingl/gui/text.h @@ -36,7 +36,7 @@ public: enum TransitionIds { TRANSITION_COLOR_RGB, /**< Transition pour la couleur RGB */ TRANSITION_COLOR_ALPHA, /**< Transition pour la transparence */ - TRANSITION_POSITION, /**< Transition pour la position */ + TRANSITION_POSITION, /**< Transition pour la Position */ }; /** @@ -65,7 +65,7 @@ public: * @param[in] textFont : Police du texte (8x13 Bitmap par défaut) * @param[in] horizontalAlignment : Alignement horizontal du texte (Alignement a gauche par défaut) * @param[in] verticalAlignment : Alignement vertical du texte (Alignement en bas par défaut) - * @fn Text(const nsGraphics::Vec2D &position, const std::string &content, + * @fn Text(const nsGraphics::Vec2D &Position, const std::string &content, const nsGraphics::RGBAcolor &textColor, const GlutFont::GlutFonts &textFont = GlutFont::GlutFonts::BITMAP_8_BY_13, const HorizontalAlignment &horizontalAlignment = ALIGNH_LEFT, const VerticalAlignment &verticalAlignment = ALIGNV_BOTTOM); @@ -95,15 +95,15 @@ public: int computeHeight() const; /** - * @brief Calcule la position visible du texte, calculée avec l'alignement vertical et horizontal - * @return La position visible, en haut a gauche + * @brief Calcule la Position visible du texte, calculée avec l'alignement vertical et horizontal + * @return La Position visible, en haut a gauche * @fn nsGraphics::Vec2D computeVisiblePosition() const; */ nsGraphics::Vec2D computeVisiblePosition() const; /** - * @brief Calcule la position de fin visible du texte, calculée avec l'alignement vertical et horizontal - * @return La position visible, en bas a droite + * @brief Calcule la Position de fin visible du texte, calculée avec l'alignement vertical et horizontal + * @return La Position visible, en bas a droite * @fn nsGraphics::Vec2D computeVisibleEndPosition() const; */ nsGraphics::Vec2D computeVisibleEndPosition() const; @@ -123,15 +123,15 @@ public: void setContent(const std::string &content); /** - * @brief Récupère la position du texte + * @brief Récupère la Position du texte * @fn const nsGraphics::Vec2D& getPosition() const; */ const nsGraphics::Vec2D& getPosition() const; /** - * @brief Définit la nouvelle position du texte - * @param[in] position : Nouvelle position - * @fn void setPosition(const nsGraphics::Vec2D &position); + * @brief Définit la nouvelle Position du texte + * @param[in] position : Nouvelle Position + * @fn void setPosition(const nsGraphics::Vec2D &Position); */ void setPosition(const nsGraphics::Vec2D &position); diff --git a/lib_headers/mingl/mingl.h b/lib_headers/mingl/mingl.h index c3a9b0c..ad2edc2 100755 --- a/lib_headers/mingl/mingl.h +++ b/lib_headers/mingl/mingl.h @@ -154,14 +154,14 @@ public: void setWindowSize(const nsGraphics::Vec2D& windowSize); /** - * @brief Récupère la position de la fenêtre + * @brief Récupère la Position de la fenêtre * @fn nsGraphics::Vec2D getWindowPosition() const; */ nsGraphics::Vec2D getWindowPosition() const; /** - * @brief Règle la position de la fenêtre - * @param[in] windowPosition : Nouvelle position + * @brief Règle la Position de la fenêtre + * @param[in] windowPosition : Nouvelle Position * @fn void setWindowPosition(const nsGraphics::Vec2D &windowPosition); */ void setWindowPosition(const nsGraphics::Vec2D &windowPosition); diff --git a/lib_headers/mingl/shape/circle.h b/lib_headers/mingl/shape/circle.h index 0f94f35..e088d60 100755 --- a/lib_headers/mingl/shape/circle.h +++ b/lib_headers/mingl/shape/circle.h @@ -34,7 +34,7 @@ public: TRANSITION_FILL_COLOR_ALPHA, /**< Transition pour la transparence de remplissage */ TRANSITION_BORDER_COLOR_RGB, /**< Transition pour la couleur de bord */ TRANSITION_BORDER_COLOR_ALPHA, /**< Transition pour la transparence de bord */ - TRANSITION_POSITION, /**< Transition pour la position */ + TRANSITION_POSITION, /**< Transition pour la Position */ TRANSITION_RADIUS, /**< Transition pour le rayon */ }; @@ -44,7 +44,7 @@ public: * @param[in] radius : Rayon du cercle * @param[in] fillColor : Couleur de remplissage * @param[in] borderColor : Couleur de bord - * @fn Circle(const nsGraphics::Vec2D& position, const unsigned& radius, const nsGraphics::RGBAcolor& fillColor, const nsGraphics::RGBAcolor& borderColor = nsGraphics::KTransparent); + * @fn Circle(const nsGraphics::Vec2D& Position, const unsigned& radius, const nsGraphics::RGBAcolor& fillColor, const nsGraphics::RGBAcolor& borderColor = nsGraphics::KTransparent); */ Circle(const nsGraphics::Vec2D& position, const unsigned& radius, const nsGraphics::RGBAcolor& fillColor, const nsGraphics::RGBAcolor& borderColor = nsGraphics::KTransparent); @@ -62,27 +62,27 @@ public: /** * @brief Opérateur de décalage * @param[in] position : Position a additionner - * @fn Circle operator+(const nsGraphics::Vec2D& position) const + * @fn Circle operator+(const nsGraphics::Vec2D& Position) const */ Circle operator+(const nsGraphics::Vec2D& getPosition) const; /** * @brief Opérateur de réduction - * @param[in] f : Nombre avec lequel multiplier la position actuelle + * @param[in] f : Nombre avec lequel multiplier la Position actuelle * @fn Circle operator*(const float& f) const */ Circle operator*(const float& f) const; /** - * @brief Récupère la position du cercle + * @brief Récupère la Position du cercle * @fn const nsGraphics::Vec2D& getPosition() const; */ const nsGraphics::Vec2D& getPosition() const; /** - * @brief Définit la nouvelle position du cercle - * @param[in] position : Nouvelle position - * @fn void setPosition(const nsGraphics::Vec2D &position); + * @brief Définit la nouvelle Position du cercle + * @param[in] position : Nouvelle Position + * @fn void setPosition(const nsGraphics::Vec2D &Position); */ void setPosition(const nsGraphics::Vec2D &position); diff --git a/lib_headers/mingl/shape/line.h b/lib_headers/mingl/shape/line.h index 9c8b159..11b8cf1 100755 --- a/lib_headers/mingl/shape/line.h +++ b/lib_headers/mingl/shape/line.h @@ -34,8 +34,8 @@ public: TRANSITION_FILL_COLOR_ALPHA, /**< Transition pour la transparence de remplissage */ TRANSITION_BORDER_COLOR_RGB, /**< Transition pour la couleur de bord */ TRANSITION_BORDER_COLOR_ALPHA, /**< Transition pour la transparence de bord */ - TRANSITION_FIRST_POSITION, /**< Transition pour la position du premier sommet */ - TRANSITION_SECOND_POSITION, /**< Transition pour la position du second sommet */ + TRANSITION_FIRST_POSITION, /**< Transition pour la Position du premier sommet */ + TRANSITION_SECOND_POSITION, /**< Transition pour la Position du second sommet */ TRANSITION_LINE_WIDTH, /**< Transition pour l'épaisseur de la ligne */ }; @@ -63,39 +63,39 @@ public: /** * @brief Opérateur de décalage * @param[in] position : Position a additionner - * @fn Line operator+(const nsGraphics::Vec2D& position) const + * @fn Line operator+(const nsGraphics::Vec2D& Position) const */ Line operator+(const nsGraphics::Vec2D& position) const; /** * @brief Opérateur de réduction - * @param[in] f : Nombre avec lequel multiplier la position actuelle + * @param[in] f : Nombre avec lequel multiplier la Position actuelle * @fn Line operator*(const float& f) const */ Line operator*(const float& f) const; /** - * @brief Récupère la position du premier sommet de la ligne + * @brief Récupère la Position du premier sommet de la ligne * @fn const nsGraphics::Vec2D& getFirstPosition() const; */ const nsGraphics::Vec2D& getFirstPosition() const; /** - * @brief Définit la nouvelle position du premier sommet de la ligne - * @param[in] firstPosition : Nouvelle position du premier sommet + * @brief Définit la nouvelle Position du premier sommet de la ligne + * @param[in] firstPosition : Nouvelle Position du premier sommet * @fn void setFirstPosition(const nsGraphics::Vec2D &firstPosition); */ void setFirstPosition(const nsGraphics::Vec2D &firstPosition); /** - * @brief Récupère la position du second sommet de la ligne + * @brief Récupère la Position du second sommet de la ligne * @fn const nsGraphics::Vec2D& getSecondPosition() const; */ const nsGraphics::Vec2D& getSecondPosition() const; /** - * @brief Définit la nouvelle position du second sommet de la ligne - * @param[in] secondPosition : Nouvelle position du second sommet + * @brief Définit la nouvelle Position du second sommet de la ligne + * @param[in] secondPosition : Nouvelle Position du second sommet * @fn void setSecondPosition(const nsGraphics::Vec2D &secondPosition); */ void setSecondPosition(const nsGraphics::Vec2D &secondPosition); diff --git a/lib_headers/mingl/shape/rectangle.h b/lib_headers/mingl/shape/rectangle.h index c3a193d..b27798d 100755 --- a/lib_headers/mingl/shape/rectangle.h +++ b/lib_headers/mingl/shape/rectangle.h @@ -34,8 +34,8 @@ public: TRANSITION_FILL_COLOR_ALPHA, /**< Transition pour la transparence de remplissage */ TRANSITION_BORDER_COLOR_RGB, /**< Transition pour la couleur de bord */ TRANSITION_BORDER_COLOR_ALPHA, /**< Transition pour la transparence de bord */ - TRANSITION_FIRST_POSITION, /**< Transition pour la position du coin haut-gauche */ - TRANSITION_SECOND_POSITION, /**< Transition pour la position du coin bas-droit */ + TRANSITION_FIRST_POSITION, /**< Transition pour la Position du coin haut-gauche */ + TRANSITION_SECOND_POSITION, /**< Transition pour la Position du coin bas-droit */ }; /** @@ -57,7 +57,7 @@ public: * @param[in] height : Hauteur du rectangle * @param[in] fillColor : Couleur de remplissage * @param[in] borderColor : Couleur de bord - * @fn Rectangle(const nsGraphics::Vec2D& position, const unsigned& width, const unsigned& height, const nsGraphics::RGBAcolor& fillColor, + * @fn Rectangle(const nsGraphics::Vec2D& Position, const unsigned& width, const unsigned& height, const nsGraphics::RGBAcolor& fillColor, const nsGraphics::RGBAcolor& borderColor = nsGraphics::KTransparent); */ Rectangle(const nsGraphics::Vec2D& position, const unsigned& width, const unsigned& height, const nsGraphics::RGBAcolor& fillColor, @@ -77,39 +77,39 @@ public: /** * @brief Opérateur de décalage * @param[in] position : Position a additionner - * @fn Rectangle operator+(const nsGraphics::Vec2D& position) const + * @fn Rectangle operator+(const nsGraphics::Vec2D& Position) const */ Rectangle operator+(const nsGraphics::Vec2D& position) const; /** * @brief Opérateur de réduction - * @param[in] f : Nombre avec lequel multiplier la position actuelle + * @param[in] f : Nombre avec lequel multiplier la Position actuelle * @fn Rectangle operator*(const float& f) const */ Rectangle operator*(const float& f) const; /** - * @brief Récupère la position du coin haut-gauche du rectangle + * @brief Récupère la Position du coin haut-gauche du rectangle * @fn const nsGraphics::Vec2D& getFirstPosition() const; */ const nsGraphics::Vec2D& getFirstPosition() const; /** - * @brief Définit la nouvelle position du coin haut-gauche du rectangle - * @param[in] firstPosition : Nouvelle position du coin haut-gauche + * @brief Définit la nouvelle Position du coin haut-gauche du rectangle + * @param[in] firstPosition : Nouvelle Position du coin haut-gauche * @fn void setFirstPosition(const nsGraphics::Vec2D &firstPosition); */ void setFirstPosition(const nsGraphics::Vec2D &firstPosition); /** - * @brief Récupère la position du coin bas-droit du rectangle + * @brief Récupère la Position du coin bas-droit du rectangle * @fn const nsGraphics::Vec2D& getSecondPosition() const; */ const nsGraphics::Vec2D& getSecondPosition() const; /** - * @brief Définit la nouvelle position du coin bas-droit du rectangle - * @param[in] secondPosition : Nouvelle position du coin bas-droit + * @brief Définit la nouvelle Position du coin bas-droit du rectangle + * @param[in] secondPosition : Nouvelle Position du coin bas-droit * @fn void setSecondPosition(const nsGraphics::Vec2D &secondPosition); */ void setSecondPosition(const nsGraphics::Vec2D &secondPosition); diff --git a/lib_headers/mingl/shape/triangle.h b/lib_headers/mingl/shape/triangle.h index ebfa619..6307d13 100755 --- a/lib_headers/mingl/shape/triangle.h +++ b/lib_headers/mingl/shape/triangle.h @@ -34,9 +34,9 @@ public: TRANSITION_FILL_COLOR_ALPHA, /**< Transition pour la transparence de remplissage */ TRANSITION_BORDER_COLOR_RGB, /**< Transition pour la couleur de bord */ TRANSITION_BORDER_COLOR_ALPHA, /**< Transition pour la transparence de bord */ - TRANSITION_FIRST_POSITION, /**< Transition pour la position du premier sommet */ - TRANSITION_SECOND_POSITION, /**< Transition pour la position du second sommet */ - TRANSITION_THIRD_POSITION, /**< Transition pour la position du troisième sommet */ + TRANSITION_FIRST_POSITION, /**< Transition pour la Position du premier sommet */ + TRANSITION_SECOND_POSITION, /**< Transition pour la Position du second sommet */ + TRANSITION_THIRD_POSITION, /**< Transition pour la Position du troisième sommet */ }; /** @@ -66,52 +66,52 @@ public: /** * @brief Opérateur de décalage * @param[in] position : Position a additionner - * @fn Triangle operator+(const nsGraphics::Vec2D& position) const + * @fn Triangle operator+(const nsGraphics::Vec2D& Position) const */ Triangle operator+(const nsGraphics::Vec2D& position) const; /** * @brief Opérateur de réduction - * @param[in] f : Nombre avec lequel multiplier la position actuelle + * @param[in] f : Nombre avec lequel multiplier la Position actuelle * @fn Triangle operator*(const float& f) const */ Triangle operator*(const float& f) const; /** - * @brief Récupère la position du premier sommet du triangle + * @brief Récupère la Position du premier sommet du triangle * @fn const nsGraphics::Vec2D& getFirstPosition() const; */ const nsGraphics::Vec2D& getFirstPosition() const; /** - * @brief Définit la nouvelle position du premier sommet du triangle - * @param[in] firstPosition : Nouvelle position du premier sommet + * @brief Définit la nouvelle Position du premier sommet du triangle + * @param[in] firstPosition : Nouvelle Position du premier sommet * @fn void setFirstPosition(const nsGraphics::Vec2D &firstPosition); */ void setFirstPosition(const nsGraphics::Vec2D &firstPosition); /** - * @brief Récupère la position du second sommet du triangle + * @brief Récupère la Position du second sommet du triangle * @fn const nsGraphics::Vec2D& getSecondPosition() const; */ const nsGraphics::Vec2D& getSecondPosition() const; /** - * @brief Définit la nouvelle position du second sommet du triangle - * @param[in] secondPosition : Nouvelle position du second sommet + * @brief Définit la nouvelle Position du second sommet du triangle + * @param[in] secondPosition : Nouvelle Position du second sommet * @fn void setSecondPosition(const nsGraphics::Vec2D &secondPosition); */ void setSecondPosition(const nsGraphics::Vec2D &secondPosition); /** - * @brief Récupère la position du troisième sommet du triangle + * @brief Récupère la Position du troisième sommet du triangle * @fn const nsGraphics::Vec2D& getThirdPosition() const; */ const nsGraphics::Vec2D& getThirdPosition() const; /** - * @brief Définit la nouvelle position du troisième sommet du triangle - * @param[in] thirdPosition : Nouvelle position du troisième sommet + * @brief Définit la nouvelle Position du troisième sommet du triangle + * @param[in] thirdPosition : Nouvelle Position du troisième sommet * @fn void setThirdPosition(const nsGraphics::Vec2D &thirdPosition); */ void setThirdPosition(const nsGraphics::Vec2D &thirdPosition); diff --git a/src/configManagement.cpp b/src/configManagement.cpp index 3f29bd0..196dda9 100644 --- a/src/configManagement.cpp +++ b/src/configManagement.cpp @@ -70,7 +70,7 @@ void ConfigBuilder::readConfig() { collectedData.grid.resize(S); for(unsigned i=0;i(j); } // players diff --git a/src/game_basics.cpp b/src/game_basics.cpp index 6d8dbb0..1c12ec5 100644 --- a/src/game_basics.cpp +++ b/src/game_basics.cpp @@ -14,17 +14,17 @@ Game::Game() : WININIT, pm(window) { void Game::managedGames() { - playMode = NONE; + playMode = PlayMode::NONE; - while(playMode!=EXIT){ - if(playMode==NONE){ + while(playMode!=PlayMode::EXIT){ + if(playMode==PlayMode::NONE){ playMode = initialMenuHandler(); }else{ playGame(); // will read the playMode cout << players[0].score << endl; // will remove cout << "END OF GAME" << endl; break; // TODO remove - if(!deathMenuHandler()) playMode = NONE; // back to the main menu + if(!deathMenuHandler()) playMode = PlayMode::NONE; // back to the main menu } } @@ -58,15 +58,6 @@ bool Game::deathMenuHandler(){ return pm.showDeathMenu(); } -bool Game::invadersTouchPlayer(){ - for(invadersColumn& line : grid){ - if(basePos.getY()+ line.size() * confData.invadersSize >= pm.getScreenHeight() - PLAYER_HEIGHT){ - return true; - } - } - return false; -} - /** * Plays the game, and returns once the game is finished * @@ -78,21 +69,21 @@ WinValue Game::playGame(){ // returns when game is finished grid = confData.grid; // will copy the vector - if(playMode==SINGLE){ + if(playMode==PlayMode::SINGLE){ players.resize(1); }else{ players.resize(2); - // mirror the start X position for the other + // mirror the start X Position for the other players[1].x = pm.getScreenWidth() - confData.startXPosition - confData.playersWidth; } players[0].x = confData.startXPosition; - basePos = position(0,0); + basePos = Position(0, 0); // GAMELOOP -#define FPS 1000 +#define MAX_FPS 1000 while(window.isOpen()){ - auto targetTime = chrono::high_resolution_clock::now() + chrono::duration>(1); + auto targetTime = chrono::high_resolution_clock::now() + chrono::duration>(1); pm.startFrame(); @@ -104,8 +95,8 @@ WinValue Game::playGame(){ // returns when game is finished moveTorpedos(); remCollidingProjectiles(); - if(checkMissilesAndPlayers())return INVADERS; - if(checkTorpedosAndInvaders())return PLAYERS; + if(checkMissilesAndPlayers())return WinValue::INVADERS; + if(checkTorpedosAndInvaders())return WinValue::PLAYERS; display(); @@ -128,15 +119,15 @@ void Game::display() { basePos.getY() + j * confData.invadersSize + j * confData.invadersDistance ); switch(grid[i][j]){ - case 0:{ + case Invader::TypeA:{ pm.drawInvader1(vec, confData.invadersSize); break; } - case 1:{ + case Invader::TypeB:{ pm.drawInvader2(vec, confData.invadersSize); break; } - case 2:{ + case Invader::TypeC:{ pm.drawInvader3(vec, confData.invadersSize); break; } @@ -145,13 +136,13 @@ void Game::display() { } for(missile& miss : missiles){ - pm.drawTorpedo(miss, confData.missilesWidth, confData.missilesColor); + pm.drawMissile(miss, confData.missilesWidth, confData.missilesColor); } for(torpedo& tor : torpedos){ pm.drawTorpedo(tor, confData.torpedosWidth, confData.torpedosColor); } for(size_t i=0;igetY()<=PLAYER_HEIGHT){ // check collision on Y // now check collision on X (with both players) - bool wasColliding = false; for(Player& p : players){ if(areLinesColliding( miss_ite->getX(), miss_ite->getX() + confData.missilesWidth, @@ -131,9 +159,9 @@ bool Game::checkMissilesAndPlayers() { // do not break, the second player also deserves to be hit } } - if(wasColliding)missiles.erase(miss_ite); - else ++miss_ite; } + if(wasColliding)missiles.erase(miss_ite); + else ++miss_ite; } return false; // TODO manage death animation } @@ -143,8 +171,8 @@ bool Game::checkTorpedosAndInvaders() { while(tor_ite!=torpedos.end()){ unsigned i=0; for(;i= pm.getScreenHeight() - PLAYER_HEIGHT){ + return true; + } + } + return false; +} diff --git a/src/main.cpp b/src/main.cpp index c5d06ab..cfcedcc 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -4,6 +4,7 @@ using namespace std; // TODO changer tout les unsigned par des size_t dans les boucles int main(){ + srand(time(NULL)); Game g; g.managedGames(); diff --git a/src/pixel_manager.cpp b/src/pixel_manager.cpp index 22bc8a3..f3e0fde 100644 --- a/src/pixel_manager.cpp +++ b/src/pixel_manager.cpp @@ -45,11 +45,11 @@ void PixelManager::drawPlayer(const nsGraphics::Vec2D& baseVector, unsigned widt } void PixelManager::drawMissile(const nsGraphics::Vec2D& baseVector, unsigned width, const nsGraphics::RGBAcolor& color){ - window << nsShape::Rectangle(baseVector, baseVector+position(width, width*PROJ_LENGTH_FACTOR), color); + window << nsShape::Rectangle(baseVector, baseVector + Position(width, width * PROJ_LENGTH_FACTOR), color); } void PixelManager::drawTorpedo(const nsGraphics::Vec2D& baseVector, unsigned width, const nsGraphics::RGBAcolor& color){ - window << nsShape::Rectangle(baseVector, baseVector+position(width, width*PROJ_LENGTH_FACTOR), color); + window << nsShape::Rectangle(baseVector, baseVector + Position(width, width * PROJ_LENGTH_FACTOR), color); } void PixelManager::drawBackground(){ diff --git a/src/projectiles.cpp b/src/projectiles.cpp index f7afa18..76397fd 100644 --- a/src/projectiles.cpp +++ b/src/projectiles.cpp @@ -1,5 +1,5 @@ #include "projectiles.h" -torpedo::torpedo(int x, int y, playerID owner) : position(x, y) { +torpedo::torpedo(int x, int y, playerID owner) : Position(x, y) { this->owner = owner; } diff --git a/src/utils.cpp b/src/utils.cpp index 03a1dfb..e0eb026 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -3,4 +3,4 @@ bool areLinesColliding(unsigned start1, unsigned end1, unsigned start2, unsigned end2){ return start1 < end2 == start2 < end1; // if it returns true, lines are colliding. I like truth tables -} +} \ No newline at end of file