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

[SFML] Wyświetlanie grafiki

Ostatnio zmodyfikowano 2012-12-30 12:58
Autor Wiadomość
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.

C/C++
#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 ) ); //Czyszczenie ekranu (kolor czerwony)
        okno.draw( sprajt );
        okno.display();
    }
    return 0;
}
P-72300
Mrovqa
» 2012-12-29 18:15:50
Dokumentacja - jeśli google nie pomoże to tam sięgaj w drugiej kolejności.
http://www.sfml-dev.org/documentation/2.0/classsf_1_1Sprite.php
Jak zjedziesz trochę na dół masz przykład - użyj tekstury.
P-72303
rubesom
Temat założony przez niniejszego użytkownika
» 2012-12-29 18:35:37
C/C++
#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 ) ); //Czyszczenie ekranu (kolor czerwony)
        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.
P-72309
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).
P-72319
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=LbWavdiod1Q

Chodzi 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?
P-72345
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
P-72364
« 1 »
  Strona 1 z 1