-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinsecte.h
140 lines (118 loc) · 4.03 KB
/
insecte.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#ifndef INSECTE_H
#define INSECTE_H
#include <QList>
#include <QString>
#include "math.h"
#include "entite.h"
#include "constantes.h"
#include <iostream>
namespace TOWERDEFENSE{
class Insecte : public Entite
{
Q_OBJECT
protected:
double taille;
double vitalite;
double resistance;
double vitesse;
double vitesseStandard;
QList<int> *path;
Type_deplacement deplacement;
QList<QPixmap*> animPixmap;
int animState;
int counter;
int counterTempsRalentissement;
public:
/*!
* Constructeur par defaut
*/
Insecte();
/*!
* Constructeur parametre
* \param taille la taille de l'insecte
* \param vitalite la vitalite de l'insecte
* \param resistance la resistance de l'insecte
* \param vitesse la vitesse de l'insecte
* \param deplacement le type de deplacement de l'insecte (RAMPANT OU VOLANT)
* \param parent l'item parent initialise a 0
*/
Insecte(const double taille, const double vitalite, const double resistance, const double vitesse, const Type_deplacement deplacement, QGraphicsPixmapItem *parent=0);
/*!
* Methode permettant l'animation de l'item sur la scene
* \param phase la phase d'appel de l'item
*/
void advance(int phase);
/*!
* Accesseur modifiant la liste contenant le path(chemin)
* \param *path le nouveau path(chemin)
*/
void setPath(QList<int> *path);
/*!
* Accesseur modifiant le compteur du path afin de se placer au bon endroit sur le chemin
* \param counter le compteur permettant de se placer au bon endroit dans le path
*/
void setCounter(int counter);
/*!
* Methode virtuelle pure permettant de traiter les degats recus par un insecte
* \param degats les degats subis par l'attaque
*/
virtual void recevoirDegats(double degats);
/*!
* Methode permettant de ralentir un insecte notamment lorsque celui-ci est touche par la tour Peinture
*/
void ralentir();
/*!
* Accesseur constant renvoyant la taille de l'insecte
* \return double la taille de l'insecte
*/
double getTaille()const;
/*!
* Accesseur constant renvoyant la vitalite de l'insecte
* \return double la vitalite de l'insecte
*/
double getVitalite()const;
/*!
* Accesseur constant renvoyant la vitesse de l'insecte
* \return double la vitesse de l'insecte
*/
double getVitesse()const;
/*!
* Accesseur constant renvoyant le type de deplacement de l'insecte
* \return Type_deplacement le type de deplacement de l'insecte
*/
Type_deplacement getDeplacement()const;
/*!
* Accesseur constant renvoyant le path(chemin) suivi par l'insecte
* \return QList<int>* pointeur sur la liste contenant le path
*/
QList<int>* getPath()const;
/*!
* Accesseur constant renvoyant la compteur du path(chemin)
* \return int le compteur du path(chemin)
*/
int getCounter() const;
/*!
* Methode incrementant l'etat de l'animation afin de simuler le mouvement du moustique
*/
void increaseAnimationStep();
signals:
/*!
* Signal envoye quand l'insecte est mort
* \param *I l'insecte a supprimer
* \param vivant true = l'insecte est arrive au but false = l'insecte est tue par une tour
*/
void supprimerInsecte(Insecte* I,bool vivant);
/*!
* Signal permettant d'ajouter des insectes enfants (notamment pour les cafards) quand l'insecte courant est detruit
* \param type type de l'insecte a creer (passage par la factory)
* \param taille la taille de l'insecte
* \param x emplacement de l'insecte sur l'axe x
* \param y emplacement de l'insecte sur l'axe y
* \param *path une liste contenant le path(chemnin)
* \param counter compteur du path(chemin)
* \param numEnfant numero de l'enfant cree
*/
void ajouterInsecteEnfant(int type,double taille,int x, int y,QList<int> *path,int counter,int numEnfant);
};
}
#endif // INSECTE_H