1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- #ifndef BALLE_H_INCLUDED
- #define BALLE_H_INCLUDED
- #include "Level.h"
- #include "../Headers/Vecteur.h"
- #include "../Headers/Point.h"
- ///Balle.h
- ///Date de modification: 8_12_2013
- ///Objet: new solution pour collisons: vecteurs normalisés
- ///Prochaine étape: debuger le système de collisions
- /*
- ===La classe Balle===
- +Définition:
- La classe Balle permet de créer une entité qui rebondit sur les éléments du niveau
- et qui peut être dirigée. Cette entité est également soumise à la gravité.
- +Méthodes:
- - Constructeur:
- Permet de renseigner tous les paramètres: rayon, couleur et le niveau en cours.
- Le pointeur sur le niveau permet de renseigner le point de spawn, la résistance
- et la gravité et le point d'arrivée.
- - demarrage:
- Active un des 4 propulseurs. Converti ensuite par un vecteur à ajouter à la force totale.
- +Arguments: deux entiers, utilisez les define pour nommer la direction du propulseur.
- - arret:
- Idem, mais le vecteur sera soustré.
- +Arguments: deux entiers, utilisez les define pour nommer la direction du propulseur.
- - calculMouvement:
- Permet d'actualiser la position de la balle. A appeler à intervalles réguliers.
- - dessiner:
- Permet d'afficher la position de la balle.
- *Argument: pointeur sur la surface de collage.
- - statutConsole:
- Permet d'afficher dans la console les infos et états de variables de la balle.
- - respawn:
- Permet de remettre la balle au point de départ.
- ===La fonction haveBall===
- +Définition:
- Cette fonction sert à créer une balle dynamiquement à partir d'un pointeur sur niveau
- pour la créer avec tous ses attributs constants, indiqués dans le fichier du niveau.
- Elle utilise pour cela la fonction lireParametres de Level.h.
- +Arguments:
- Pointeur sur le niveau en cours.
- +Renvoi:
- Pointeur sur la balle créée.
- */
- #define HAUT 0,-1
- #define DROITE 1,0
- #define BAS 0,1
- #define GAUCHE -1,0
- class Balle
- {
- public:
- Balle(int rayon, Uint32 couleur, Level* niveau,
- int xSpawn,int ySpawn,float resistance,float gravite,int xBut,int yBut);
- ~Balle();
- void demarrage(short dx, short dy);//à renseigner par define
- void arret(short dx, short dy);//idem
- void calculMouvement();
- void dessiner(SDL_Surface* support);
- void statutConsole();
- void respawn();
- protected:
- //Attributs physiques
- float const m_puissance;//defaut: 1
- float const m_resistance;//defaut: 0.5
- Vecteur const m_attraction;//Force extérieure defaut: 1.5
- //Attributs vectoriels
- Vecteur m_position;//Contient les coordonnées de l'objet
- Vecteur m_resultante;//Force finale, force précédente
- Vecteur m_traction;//Force totale des propulseurs
- Vecteur const m_spawn;
- Vecteur const m_arrivee;
- //Attribut SDL
- SDL_Surface* m_point;
- //Attribut de l'environnement
- Level* m_niveau;
- };
- Balle* haveBall(Level* niveau);
- #endif // BALLE_H_INCLUDED
|