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 #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; }
|
|
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 :) |
|
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 ? |
|
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). |
|
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 |
|
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. #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; }
|
|
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. |
|
Dark |
» 2011-12-08 19:10:26 używaj po Display'u oknoAplikacji.Clear(); |
|
« 1 » 2 |