SetAlive musst du so verändern, dass wenn die Variable, die zählt, wie oft der Asteroid getroffen wurde gleich dem Maximum an Treffern ist, die ein Asteroid wegstecken kann, die Variable, die angibt, dass der Asteroid noch "am Leben" ist auf false gesetzt wird und wenn die Variable darunter ist, dass der Counter dann erhöht wird.
Beispiel:
|
C-/C++-Quelltext
|
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
|
// Klassendefinition der Asteroidenklasse
class Asteroid
{
...
private:
int m_hitcount;
bool m_alive;
...
public:
void SetAlive(bool alive); // Passender wäre Hit
...
};
// Implementierung von Asteroid::SetAlive
void Asteroid::SetAlive(bool alive)
{
if( alive == false )
{
if( m_hitcount == 2) // Hier kann auch mit einer Variable verglichen werden
{
m_alive = false;
} else (m_hitcount < 2 ) {
m_hitcount++;
}
} else {
m_alive = true; // Wann ist das der Fall???
}
}
// Implementierung von Asteroid::IsAlive
bool Asteroid::IsAlive()
{
return m_alive;
}
|