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

sfml 2.1 obrazek się nie wyświetla

Ostatnio zmodyfikowano 2014-01-07 14:54
Autor Wiadomość
oval
Temat założony przez niniejszego użytkownika
sfml 2.1 obrazek się nie wyświetla
» 2014-01-03 17:23:14
Witam,
Tworzę prostą gierkę (klocki spadają z góry, a player na dole do nich strzela).
Mam 2 klasy, jedna do obsługi playera a druga do "klocków".
Player wyświetla się elegancko, natomiast zamiast klocków mam tylko białe kwadraty.

Kodzik gracza (działający):

C/C++
class Player
{
public:
    sf::Sprite rect;
    sf::Texture titleImage;
   
    Player( sf::Vector2f position )
    {
        rect.setPosition( position );
        titleImage.loadFromFile( "pictures/player.jpg" );
        rect.setTexture( titleImage );
    }
};
Player p1( sf::Vector2f( szerokosc_okna / 2, wysokosc_okna - 100 ) );
Window.draw( p1.rect );

Kod który wyświetla białe kwadraty zamiast obrazków:

C/C++
class Klocek
{
public:
    sf::Sprite rect;
    sf::Texture titleImage;
   
    Klocek( sf::Vector2f position )
    {
        rect.setPosition( position );
        titleImage.loadFromFile( "pictures/buzka.jpg" );
        rect.setTexture( titleImage );
    }
};

std::vector < Klocek > klocki;
klocki.push_back( Klocek( sf::Vector2f( rand() % szerokosc_okna, 1 ) ) );

for( unsigned int i = 0; i < klocki.size(); i++ )
{
    Window.draw( klocki[ i ].rect );
}

pod linkiem macie cały kod klas i funkcji main(): http://pastebin.com/FDLN0Y79

edit: zauważyłem, że po kolizji następuje koniec gry i restart. Po restarcie przez niecałą sekundę widać ładnie obrazki, więc może to coś z vectorem i jego wymazywaniem pokićkałem ? ;/
P-101049
MrPoxipol
» 2014-01-03 18:26:13
Tekstura jest nie wczytana.. (wg objawów, sprawdź co wypluwa konsola), a i ładowanie tekstury przy każdym stworzeniu obiektu nie jest optymalne.
P-101059
pekfos
» 2014-01-03 18:33:48
Zdefiniuj poprawny konstruktor kopiujący. W przy kopiowaniu obiektu, sprajt jest powiązany z teksturą z oryginalnego obiektu, który potem jest niszczony.
P-101063
Estivo
» 2014-01-05 23:33:45
oval nie radziłbym kopiować ot tak sobie sf::Texture.
P-101318
fortas
» 2014-01-07 14:54:31
Wykorzystaj wskaznik przy vectorze: std::vector < Klocek* > klocki;
Ewentualnie skorzystaj z referencji dla tekstury.
P-101502
« 1 »
  Strona 1 z 1