Hey Leute =)
ich hab mal wieder angefangen ein bisschen zu programmiern und wollte so ein spiel machen bei dem man umherfliegende Zielscheiben abschießen muss. Ich weiß das gibts schon, aber ich hab noch so nen paar ganz nette ideen mit denen man das etwas abwechslungsreicher machen kann.
Ich habe jetzt allerdings ein Problem:
Ich habe eine klasse TargetManager der sich um die verwaltung der ziele kümmert, also spawnen, verschwinden lassen, checken ob sie getroffen wurden und so weiter.
Dieser Manager hat eine std::list in der alle ziele verzeichnet sind. immer wenn ich jetzt eine Zielscheibe spawnen möchte, rufe ich folgende Funktion auf:
|
C-/C++-Quelltext
|
1
2
3
4
|
void TargetManager::createTarget()
{
TargetList.push_back(new Target());
}
|
ich weiß nicht genau ob dsa funktioniert, aber ich hab ja eigentlich keine andere möglichkeit da diese liste der einzige pointer sein soll der auf das objekt zeigt.
so, wenn ich jetzt die liste durchgehe kommt aber die meldung
"Expression: list iterator not dereferencable"
hier ist noch der code:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
|
void TargetManager::Update(double t, Vector2 MousePos)
{
std::list<Target*>::iterator Iter;
for(Iter = TargetList.begin(); Iter != TargetList.end(); ++Iter);
{
if((*Iter)->isHitted(MousePos))
TargetList.erase(Iter);
else
(*Iter)->Update(t);
}
}
|
isHitted soll überprüfen ob das ziel getroffen wurde und falls ja muss es natürlich aus der liste gelöscht werden.
und bei isHitted kommt nun diese meldung, ich hab das gefühl dsa es etwas damit zutun, könnt ihr mir vllt helfen? =)
Danke im voraus,
TwoThirds