Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Leviathan Mini JLI'ler
Alter: 49 Anmeldedatum: 12.01.2005 Beiträge: 31 Wohnort: S9 Medaillen: Keine
|
Verfasst am: 18.08.2005, 06:32 Titel: Problem beim Aufruf einer Methode |
|
|
Hi!
Ich habe folgendes Problem. Ich verwende zwei Listen mit Sprites:
Code: | list<CSprite> m_ShotsList;
list<CSprite> m_AsteroidList; |
Nun überprüfeich in einer Schleife eine mögliche Kollision einzelner Elemente der ersten Liste mit allen Elementen der zweiten.
Code: |
list<CSprite> ::iterator it;
list<CSprite> ::iterator jt;
for (it=m_AsteroidList.begin();it!=m_AsteroidList.end();it++)
{
for (jt=m_ShotsList.begin();jt!=m_ShotsList.end();jt++)
{
if (it->testCollision(???))
{
// tue was...
}
}
}
|
Die "testCollision" Methode der Sprite Klasse sieht aber folgendermaßen aus:
Code: |
bool testCollision(CSprite* otherSprite);
|
Wie soll ich denn die 3 Fragezeichen nun ersetzen, damit ich keine Compilerfehler bekomme?
mfg
Levi |
|
Nach oben |
|
|
Dragon Super JLI'ler
Alter: 38 Anmeldedatum: 24.05.2004 Beiträge: 340 Wohnort: Sachsen Medaillen: Keine
|
Verfasst am: 18.08.2005, 11:09 Titel: |
|
|
erstmal würde ich die schleife ändern, weil so wie du sie zur zeit hast, kommt jede kollision zweimal vor. Vieleicht ist es erwünscht aber wenn das Object dann fehlt, dann fehlt die Kollision mit dem anderen Sprite (Ich hatte mal das Problem).
Edit: Sorry, ich hätte mir deinen Code richtig anschauen sollen. Das was ich oben geschrieben habe ist Schwachsinn.
CPP: | bool testCollision(CSprite& otherSprite); |
Referenz ist besser meines erachtens, wirst du später sehen
Die Schleife würde ich so abändern:
CPP: | for (it=m_AsteroidList.begin();it!=m_AsteroidList.end();it++)
{
for (jt=m_ShotsList.begin();jt!=m_ShotsList.end();jt++)
{
if (it->testCollision(*it)) //Jetzt ist der Aufruf ganz einfach
{
// tue was...
}
}
|
_________________ Nur wenn man ein Ziel sieht, kann man es auch treffen.
___________
Mein Leben, Freunde und die Spieleentwicklung |
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 18.08.2005, 11:38 Titel: |
|
|
Aaaber '*jt', sonst prüfst du ja auf die Kollision mit sich selbst
CPP: | if (it->testCollision(*jt)) //Jetzt ist der Aufruf ganz einfach
{
// tue was...
}
|
_________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
|
Dragon Super JLI'ler
Alter: 38 Anmeldedatum: 24.05.2004 Beiträge: 340 Wohnort: Sachsen Medaillen: Keine
|
Verfasst am: 18.08.2005, 12:21 Titel: |
|
|
The Lord of Programming hat Folgendes geschrieben: | Aaaber '*jt', sonst prüfst du ja auf die Kollision mit sich selbst
CPP: | if (it->testCollision(*jt)) //Jetzt ist der Aufruf ganz einfach
{
// tue was...
}
|
|
stimmt naja ich war halt noch nicht richtig wach wo ich geantwortet habe _________________ Nur wenn man ein Ziel sieht, kann man es auch treffen.
___________
Mein Leben, Freunde und die Spieleentwicklung |
|
Nach oben |
|
|
Leviathan Mini JLI'ler
Alter: 49 Anmeldedatum: 12.01.2005 Beiträge: 31 Wohnort: S9 Medaillen: Keine
|
Verfasst am: 18.08.2005, 12:52 Titel: |
|
|
Danke! Hat geholfen!
Gruß |
|
Nach oben |
|
|
|