Witam ... Otóż problem jest dosyć dziwny, ale przejdę do rzeczy. Piszę grę w SFMLu 2.0 i gdzieś trzeba przechowywać potwory. Wybrałem mapę do tego celu. Wszystko pięknie, fajnie gra prawie skończona wszystko fajnie działa no ale trzeba napisać generator tych potworków... Struktura wygląda u mnie tak :
Uproszczona klasa dla przykładu:
class Maps
{
private:
std::map < int, Monsters > MapMonster;
public:
void AddMonsterToMap( Monsters & monster );
}
void Maps::AddMonsterToMap( Monsters & monster )
{
MapMonster.insert( std::pair < int, Monsters >( monster.GetCreatureCID(), monster ) );
}
I teraz tak (ten wypadek działa pięknie) :
Dodaję potwora w MAIN przed głowną pętlą :
...
Monsters G_MONSTERS( & anima, 10, 16, "Zenek", 2000, 10000, 10000, 1, 1000, 1000 );
G_MAPS.AddMonsterToMap( G_MONSTERS );
while( G_MAPS.window.isOpen() )
{
sf::Event event;
while( G_MAPS.window.pollEvent( event ) )
...
A jeżeli dodam te 2 linijki do jakiejś funkcji to program kaput ... Tak jakby mówił "chyba Ci się porąbały adresy synku ..."
Monsters G_MONSTERS( & anima, 10, 16, "Zenek", 2000, 10000, 10000, 1, 1000, 1000 );
G_MAPS.AddMonsterToMap( G_MONSTERS );
Przykładowa funkcja powodująca wysypanie się programu :
void Maps::GenerateMonster( Animation anima )
{
Monsters G_MONSTERS( & anima, 10, 16, "Poring", 2000, 10000, 10000, 1, 1000, 1000 );
AddMonsterToMap( G_MONSTERS );
}
Co jest z tym nie tak ?? Czy jest coś w map[STL] o czym nie wiem ??
Mam w klasie Maps jeszcze :
std::vector < Effects > MapEffects;
i jak dodaję ( MapEffects.push_back() ) efekt do MapEffects z poziomu metody klasy Maps to nie ma takiego problemu ...