ja "mein" code xD hab halt die " " vergessen
ok ich hab da jetzt 20 bilder draus gemacht sie drangehängt etc. jetzt gehts... aber die collisionen gehen iwie nicht =/ ja ich hab das wieder kopiert eingefügt und die namen geändert... kommt auch kein fehler aber wenn ich draufschieße dann passiert nix =(
|
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
void CGame::CheckCollisions_Satellit ()
{
// Schussliste des Spielers holen
list<CShot> *ShotList = m_pPlayer->GetShotList ();
// Iteratoren für Asteroiden- und Schussliste
list<CSatellit>::iterator ItSatellit = m_SatellitList.begin ();
list<CShot>::iterator ItShot;
// Rects für Asteroiden und Schüsse
SDL_Rect RectSatellit;
SDL_Rect RectShot;
// Alle Asteroiden durchlaufen
while (ItSatellit != m_SatellitList.end () )
{
// Rect des Asteroiden holen
RectSatellit = ItSatellit->GetRect ();
// Alle Schüsse durchlaufen
for (ItShot = ShotList->begin ();
ItShot != ShotList->end ();
++ItShot)
{
// Rect des Schusses holen
RectShot = ItShot->GetRect ();
// Überschneiden sich die Rects?
if (RectShot.y < RectSatellit.y + RectSatellit.h &&
RectShot.y + RectShot.h > RectSatellit.y &&
RectShot.x < RectSatellit.x + RectSatellit.w &&
RectShot.x + RectShot.w > RectSatellit.x)
{
// Ja, also gab es eine Kollision. Somit Schuss und
// Asteroid deaktivieren
ItSatellit->SetAlive (false);
ItShot->SetAlive (false);
}
}
// Asteroid löschen, falls deaktiviert
if (ItSatellit->IsAlive () )
ItSatellit++;
else
ItSatellit = m_SatellitList.erase (ItSatellit);
}
} // CheckCollision
|
das ist halt der collision teil