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

[SFML]Problem z wyświetlaniem obrazka

Ostatnio zmodyfikowano 2011-12-08 19:20
Autor Wiadomość
marcin107
Temat założony przez niniejszego użytkownika
[SFML]Problem z wyświetlaniem obrazka
» 2011-12-08 18:05:28
Witam, mam problem z wyświetleniem obrazka w SFML. Mam projekt z folderem "bin" i obrazek.jpg w środku.
Lecz gdy wciskam F1 wyskakuje - Failed to load image "obrazek.jpg". reason : Unable to open file.

kod programu
C/C++
#include <SFML/Graphics.hpp>

int main()
{
    sf::RenderWindow oknoAplikacji( sf::VideoMode( 1000, 800, 32 ), "Kurs SFML - http://cpp0x.pl" );
   
    while( oknoAplikacji.IsOpened() )
    {
        sf::Event zdarzenie;
        while( oknoAplikacji.GetEvent( zdarzenie ) )
        {
            if( zdarzenie.Type == sf::Event::Closed )
                 oknoAplikacji.Close();
           
            if( zdarzenie.Type == sf::Event::KeyPressed && zdarzenie.Key.Code == sf::Key::Escape )
                 oknoAplikacji.Close();
           
            if( zdarzenie.Type == sf::Event::MouseButtonPressed && zdarzenie.MouseButton.Button == sf::Mouse::Middle )
                 oknoAplikacji.Close();
           
            if( zdarzenie.Type == sf::Event::KeyPressed && zdarzenie.Key.Code == sf::Key::F1 )
            {
                sf::Image obrazek;
                obrazek.LoadFromFile( "obrazek.jpg" );
                sf::Sprite naszSprajt;
                naszSprajt.SetImage( obrazek );
                naszSprajt.SetPosition( 800, 600 );
                naszSprajt.SetScale( 5, 5 );
                oknoAplikacji.Draw( naszSprajt );
            }
        }
       
       
        oknoAplikacji.Display();
    }
    return 0;
}
P-45336
madmike44
» 2011-12-08 18:24:40
Sprawdź, czy na pewno masz obrazek tam, gdzie plik z przedstawionym kodem źródłowym - przypuszczam, że jest to plik main.cpp :)
P-45338
marcin107
Temat założony przez niniejszego użytkownika
» 2011-12-08 18:33:08
Przerzuciłem, po wciśnięciu F1 okienko łapie zwieche na jakieś parę sekund, a później pojawia się jakieś migający jednokolorowy kwadrat -.- A może trzeba dać innym format ?
P-45340
szyx_yankez
» 2011-12-08 18:38:12
Wrzuć obrazek to folderu z plikiem *.exe i spróbuj uruchomić aplikacje ręcznie(z poziomu explorera).
P-45341
madmike44
» 2011-12-08 18:46:20
Problem może być też z samym obrazem:

- sprawdź, czy obraz nie jest zapisany w innym formacie, niż sugeruje to jego rozszerzenie - najlepiej wrzuć inny obraz
- sprawdź, czy masz uprawnienia do otwarcia pliku
P-45342
marcin107
Temat założony przez niniejszego użytkownika
» 2011-12-08 18:53:13
Zrobiłem poprawkę, teraz nie ma zwiechy, nie wyświetla żadnego błędu, tylko pozostaje black screen.

C/C++
#include <SFML/Graphics.hpp>

int main()
{
    sf::RenderWindow oknoAplikacji( sf::VideoMode( 1000, 800, 32 ), "Kurs SFML - http://cpp0x.pl" );
   
    while( oknoAplikacji.IsOpened() )
    {
        sf::Event zdarzenie;
        while( oknoAplikacji.GetEvent( zdarzenie ) )
        {
            if( zdarzenie.Type == sf::Event::Closed )
                 oknoAplikacji.Close();
           
            if( zdarzenie.Type == sf::Event::KeyPressed && zdarzenie.Key.Code == sf::Key::Escape )
                 oknoAplikacji.Close();
           
            if( zdarzenie.Type == sf::Event::MouseButtonPressed && zdarzenie.MouseButton.Button == sf::Mouse::Middle )
                 oknoAplikacji.Close();
           
            if( zdarzenie.Type == sf::Event::KeyPressed && zdarzenie.Key.Code == sf::Key::F1 )
            {
                sf::Image obrazek;
                obrazek.LoadFromFile( "obrazek.png" );
                sf::Sprite naszSprajt;
                naszSprajt.SetImage( obrazek );
                naszSprajt.SetPosition( 500, 400 );
                naszSprajt.SetScale( 10, 10 );
                oknoAplikacji.Draw( naszSprajt );
            }
        }
       
       
        oknoAplikacji.Display();
    }
    return 0;
}
P-45344
marcin107
Temat założony przez niniejszego użytkownika
» 2011-12-08 18:57:30
A dobra to przez scale, tylko teraz jak kliknę raz F1, to ten obrazek miga, po kilku razach dopiero się stabilizuje.
P-45346
Dark
» 2011-12-08 19:10:26
używaj po Display'u
oknoAplikacji.Clear();
P-45347
« 1 » 2
  Strona 1 z 2 Następna strona