-
Notifications
You must be signed in to change notification settings - Fork 1
/
Palazzo.cpp
56 lines (49 loc) · 1.08 KB
/
Palazzo.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
/*
* Palazzo.cpp
*
* Created on: 23/ago/2010
* Author: dario
*/
#include "Palazzo.h"
//Costruttore, inizializzo le variabili
Palazzo::Palazzo(float latoPalazzo, float x, float y, float z): FrameActor() {
setOrigin(x, y, z);
altezza = rand() % 7 + 2;
lato = latoPalazzo;
//Creo un colore casuale
colore[0] = rand() % 100 / 100.0;
colore[1] = rand() % 100 / 100.0;
colore[2] = rand() % 100 / 100.0;
danni = 0;
}
//Disegna il palazzo
void Palazzo::draw(void) {
glPushMatrix();
applyTransform();
glColor4f(colore[0], colore[1], colore[2], 1.0 - danni);
glTranslatef(0, altezza / 2.0, 0);
glScalef(lato, altezza, lato);
glutSolidCube(1);
glPopMatrix();
}
//Ritorna la dimensione del lato di base
float Palazzo::getLato(void) {
return lato;
}
//Ritorna l'altezza del palazzo
float Palazzo::getAltezza(void) {
return altezza;
}
//Aggiunge danni al palazzo
bool Palazzo::addDamage(float howMuch) {
danni += howMuch;
if (danni >= 1) {
danni = 1;
return false;
}
return true;
}
//Ritorna la vita del palazzo (1-danni)
float Palazzo::getLife(void) {
return 1.0 - danni;
}