-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgranata.cpp
158 lines (116 loc) · 2.8 KB
/
granata.cpp
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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
#include "granata.h"
Granata::Granata(float px,float py,float pz):posx(px),posy(py),posz(pz),sparato(false),collisione(false){}
Granata::~Granata(){}
float Granata::getPosX()const{
return posx;
}
float Granata::getPosY()const{
return posy;
}
float Granata::getPosZ()const{
return posz;
}
void Granata::setPosX(float px){
posx=px;
}
void Granata::setPosY(float py){
posy=py;
}
void Granata::setPosZ(float pz){
posz=pz;
}
bool Granata::isSparata()const{
return sparato;
}
void Granata::setSparato(bool b){
sparato=b;
}
bool Granata::isCollisione()const{
return collisione;
}
void Granata::setCollisione(bool b){
collisione=b;
}
Bomba::Bomba(float px,float py,float pz): Granata(px,py,pz),obiettivo(0){
indiciPalazzoObiettivo=new int[2];
}
Bomba::~Bomba(){
delete obiettivo;
delete indiciPalazzoObiettivo;
}
void Bomba::addObiettivo(float x,float y,float z){
if(obiettivo==0){
obiettivo=new Obiettivo(x,y,z);
}
}
Obiettivo::Obiettivo* Bomba::getObiettivo(){
return obiettivo;
}
void Bomba::addIndiciPalazzoObiettivo(int indCittadella,int indPalazzo){
indiciPalazzoObiettivo[0]=indCittadella;
indiciPalazzoObiettivo[1]=indPalazzo;
}
bool Bomba::isBombaSopraPalazzoObiettivo(){
if(indiciPalazzoObiettivo!=0){
if(indiciPalazzoObiettivo[0]==-1 && indiciPalazzoObiettivo[1]==-1){
return false;
}
else{
return true;
}
}
else{
return false;
}
}
int Bomba::getIndiceCittadellaPalazzoObiettivo(){
if(indiciPalazzoObiettivo!=0){
return indiciPalazzoObiettivo[0];
}
return -1;
}
int Bomba::getIndicePalazzoObiettivo(){
if(indiciPalazzoObiettivo!=0){
return indiciPalazzoObiettivo[1];
}
return -1;
}
float Bomba::getRaggioBomba(){
return raggioBomba;
}
Proiettile::Proiettile(float px,float py,float pz): Granata(px,py,pz){}
float Proiettile::getDirX() const{
return dirX;
}
float Proiettile::getDirY() const{
return dirY;
}
float Proiettile::getDirZ() const{
return dirZ;
}
float Proiettile::getPosXRotOssY()const{
return posXRotOssY;
}
float Proiettile::getPosZRotOssY()const{
return posZRotOssY;
}
void Proiettile::setPosXRotOssY(float f){
posXRotOssY=f;
}
void Proiettile::setPosZRotOssY(float f){
posZRotOssY=f;
}
float Proiettile::getRotOssYSuSparo()const{
return RotOssYSuSparo;
}
void Proiettile::setRotYSuSparo(float r){
RotOssYSuSparo=r;
}
void Proiettile::aggiornaDirezioni(float canRotX,float canRotY){//per mette di aggiornare la posizione del proiettile a secondo delle rotazioni sul cannone
dirX=sin((canRotY)/RADIANTE)*sin((canRotX)/RADIANTE);
dirY=cos((canRotX)/RADIANTE);
dirZ=cos((canRotY)/RADIANTE)*sin((canRotX)/RADIANTE);
}
float Proiettile::getRaggioProiettile(){
return raggioProiettile;
}