rubesom Temat założony przez niniejszego użytkownika |
[SFML] Wyświetlanie grafiki » 2012-12-29 18:05:29 Bazuje na sfml 2.0, przerobiłem kurs ze strony http://cpp0x.pl. Teraz bazuje sobie na kursach pod 1.6. Mam problem z wyświetleniem grafiki. Iformacja : 'setImage' : is not a member of 'sf::Sprite' - linijka 11. Wydaje mi się, że wszędzie zmieniłem na małe litery metody (bazuje na kursie pod 1.6). Nie wiem o co chodzi, proszę o pomoc. #include <SFML/Window.hpp> #include <SFML/Graphics.hpp>
int main() { sf::RenderWindow okno( sf::VideoMode( 800, 600, 32 ), "Nazwa okna", sf::Style::Close ); sf::Image obrazek; obrazek.loadFromFile( "xyz.png" ); sf::Sprite sprajt; sprajt.setImage( obrazek ); sprajt.setPosition( 400, 300 ); sprajt.setScale( 5, 5 ); while( okno.isOpen() ) { sf::Event zdarzenie; while( okno.pollEvent( zdarzenie ) ) { if( zdarzenie.type == sf::Event::Closed ) okno.close(); if( zdarzenie.type == sf::Event::KeyPressed && zdarzenie.key.code == sf::Keyboard::Q ) okno.close(); if( zdarzenie.type == sf::Event::MouseButtonPressed && zdarzenie.mouseButton.button == sf::Mouse::Middle ) okno.close(); } okno.clear( sf::Color( 255, 0, 0 ) ); okno.draw( sprajt ); okno.display(); } return 0; } |
|
Mrovqa |
» 2012-12-29 18:15:50 |
|
rubesom Temat założony przez niniejszego użytkownika |
» 2012-12-29 18:35:37 #include <SFML/Window.hpp> #include <SFML/Graphics.hpp>
int main() { sf::RenderWindow okno( sf::VideoMode( 800, 600, 32 ), "Nazwa okna", sf::Style::Close ); sf::Texture obrazek; obrazek.loadFromFile( "xyz.png" ); sf::Sprite sprajt; sprajt.setColor( sf::Color( 255, 255, 255, 200 ) ); sprajt.setPosition( 400, 300 ); sprajt.setTexture( obrazek ); sprajt.setTextureRect( sf::IntRect( 10, 10, 250, 200 ) ); while( okno.isOpen() ) { sf::Event zdarzenie; while( okno.pollEvent( zdarzenie ) ) { if( zdarzenie.type == sf::Event::Closed ) okno.close(); if( zdarzenie.type == sf::Event::KeyPressed && zdarzenie.key.code == sf::Keyboard::Q ) okno.close(); if( zdarzenie.type == sf::Event::MouseButtonPressed && zdarzenie.mouseButton.button == sf::Mouse::Middle ) okno.close(); } okno.clear( sf::Color( 255, 0, 0 ) ); okno.draw( sprajt ); okno.display(); } return 0; }
Wyświetla mi tylko biały prostokąt. W folderze z programem mam zapisany obrazek narysowany w paintcie w formacie png. Co jest źle. Zrobiłem tak jak w dokumentacji. |
|
Mrovqa |
» 2012-12-29 19:41:17 Odpalasz aplikację spod IDE czy ręcznie z folderu? Różnica jest - inny aktualny folder == gdzie indziej szuka plików. Jeżeli powyższe masz dobrze, to sprawdziłbym to: sprajt.setColor( sf::Color( 255, 255, 255, 200 ) ); (->dokumentacja). |
|
rubesom Temat założony przez niniejszego użytkownika |
» 2012-12-29 22:00:14 Działa... Mało w internecie kursów stricte pod wersje 2.0. Przejść na 1.6 czy lepiej uczyć się już nowszej? Po mimo tego, że znajduje tutoriale pod 2.0 to ludzie tłumaczą tam z zasadami po 1.6 np. https://www.youtube.com/watch?v=LbWavdiod1QChodzi mi o np. IsOpened a powinno buc IsOpen. O co w tym chodzi? Pobrałem jeszcze inną wersje niż 2.0? Nie ma żadnych kursów pod wersje 2.0 pomijając oczywiście ten z cpp0x. Jak ludzie na wersji 2.0 używają np. IsOpened? |
|
kampar |
» 2012-12-30 12:58:23 najlepiej ściągnij najnowszą wersję 2.0 RC i bazuj na oficjalnej dokumentacji. W najnowszej wersji występuje metoda isOpen(), oni po prostu mają starsze wersje |
|
« 1 » |