Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[ SFML 2.0 ] Problem z kontenerem vector przechowującym Sprity

Ostatnio zmodyfikowano 2013-05-20 17:04
Autor Wiadomość
Gucio3012
Temat założony przez niniejszego użytkownika
[ SFML 2.0 ] Problem z kontenerem vector przechowującym Sprity
» 2013-05-20 15:59:30
Witam. Ponownie mam problem.

 Stworzyłem sobie klasę pudelka, w której utworzyłem kontener vector na pudła(sprity) i funkcję stworz, której głównym zadaniem jest tworzenie pudeł na współrzędnych, które podam (obiekt.stworz( x, y ).

C/C++
class pudelka
{
public:
    vector < sf::Sprite > pudla;
    sf::Texture tekstura_pudla;
    sf::Sprite pudlo;
    void stworz( int pudlo_x, int pudlo_y )
    {
        tekstura_pudla.loadFromFile( "Grafika/pudlo.png" );
        pudlo.setTexture( tekstura_pudla );
        pudlo.setPosition( pudlo_x, pudlo_y );
        pudla.push_back( pudlo );
    }
};

Tworze je np. tak:
C/C++
pudla_obiekt.stworz( 100, 100 );
pudla_obiekt.stworz( 200, 100 );

Okej, jak już wyjaśniłem jak to działa to mój problem jest taki. Jeśli wystrzele pocisk i kolizja==true to używam erase,które powoduje wywalanie pudeł od miejsca w kontenerze, które podam w górę, czyli jesli podam 0, a mam pudla na miejscach 0 i 1, to wywala oba.( o to chodzi, to jest złe, ma wywalać tylko jedno pudło, te podane przez "i")
Sprawdzanie kolizji wygląda tak:
C/C++
for( int i = 0; i < pudla_obiekt.pudla.size(); i++ )
{
    sf::Vector2f pozycja_pudla = pudla_obiekt.pudla[ i ].getPosition();
    if(( pozycja_pocisku.x >= pozycja_pudla.x ) &&
    ( pozycja_pocisku.x <= pozycja_pudla.x + 26 ) &&
    ( pozycja_pocisku.y >= pozycja_pudla.y ) &&
    ( pozycja_pocisku.y <= pozycja_pudla.y + 22 ) )
         shoot = false;
   
    pudla_obiekt.pudla.erase( pudla_obiekt.pudla.begin() + i );
}
Dodam jeszcze, że jeśli wywalam erase, to pocisk zatrzymuje się na pudle( to, że nie znika nie jest istotne, na razie tak ma być ), czyli prawidłowo, ale jak jest erase to pudła znikają od razu jak wystrzele pocisk.

Jeśli nie widać tu błędu to załączę cały kod. Mam nadzieję, że wiadomo o co chodzi :D
P-83427
pekfos
» 2013-05-20 16:58:45
Erase masz poza warunkiem.
P-83431
Gucio3012
Temat założony przez niniejszego użytkownika
» 2013-05-20 17:04:10
:O Nie wierze, że nie zauważyłem! Damn it! Dzięki. To mój pierwszy większy projekt, gubię się w tych nawiasach -_-
P-83433
« 1 »
  Strona 1 z 1