[SFML 2.0] Problem z teksturą - konstruktor.
Ostatnio zmodyfikowano 2012-12-15 21:24
Nevea Temat założony przez niniejszego użytkownika |
[SFML 2.0] Problem z teksturą - konstruktor. » 2012-12-15 19:01:17 Mój problem polega na tym, że zamiast normalnej tekstury wyświetla się biały prostokąt o tych samych wymiarach. Moje fragmenty kodu: class postac : public sf::Sprite { public: sf::Sprite sprite; sf::Texture texture; postac(); postac( int rodz, std::string tex_naz ) { texture.loadFromFile( tex_naz ); texture.setSmooth( true ); sprite.setTexture( texture ); } void wyswietl( sf::RenderWindow & oknoAplikacji ) { oknoAplikacji.draw( sprite ); } };
{...}
typedef std::vector < postac > VobiektyS; VobiektyS sObiekty;
{...}
sObiekty.push_back( postac( 0, "ludzik.png" ) );
{...}
sObiekty[ 0 ].wyswietl( oknoAplikacji );
Nie potrafię znaleźć błędu. Proszę o pomoc. |
|
Mrovqa |
» 2012-12-15 20:50:13 Ten problem pojawiał się na tym forum już niejednokrotnie. Albo zrób vector wskaźników na klasę, albo w klasie użyj wskaźnika na teksturę. Poza tym - dziedziczysz klasę sf::Sprite i równocześnie definiujesz sobie obiekt tej klasy jako składową. Po co Ci to? |
|
ison |
» 2012-12-15 21:24:31 nie możesz trzymać sf::Texture bezpośrednio w vectorze bo vector bardzo lubi często wywoływać konstruktory i destruktory a sf::Texture jest tak skonstruowany, że konstruktor kopiujący nie kopiuje tekstury zaś destruktor ją niszczy. |
|
« 1 » |