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

SFML 2.1 - Problem z Image i Sprite

Ostatnio zmodyfikowano 2013-09-07 09:24
Autor Wiadomość
oputyk
Temat założony przez niniejszego użytkownika
SFML 2.1 - Problem z Image i Sprite
» 2013-09-06 21:25:22
Witam wszystkich oto kod:
C/C++
#include<iostream>
#include<SFML/Config.hpp>
#include<SFML/OpenGL.hpp>
#include<SFML/Audio.hpp>
#include<SFML/Graphics.hpp>
#include<SFML/Window.hpp>
#include<SFML/System.hpp>
int main()
{
    sf::RenderWindow okno( sf::VideoMode( 800, 600, 32 ), "Okno", sf::Style::Default );
    sf::RectangleShape czw( sf::Vector2f( 200, 200 ) );
    czw.setFillColor( sf::Color::Blue );
    czw.setPosition( 300, 200 );
    sf::Font font;
    if( !font.loadFromFile( "Arial.ttf" ) )
    {
        std::cout << "Blad przy arial.ttf" << std::endl;
    }
    sf::Image image;
    image.loadFromFile( "obrazek.png" );
    sf::Text tekst( "Jakis tam tekst", font );
    sf::Sprite sprite();
    sprite.SetImage( image );
    tekst.setCharacterSize( 20 );
    tekst.setColor( sf::Color::Red );
    tekst.setPosition( 500, 300 );
    while( okno.isOpen() )
    {
        okno.clear( sf::Color::Black );
        sf::Event zd;
        while( okno.pollEvent( zd ) )
        {
            if( zd.type == sf::Event::KeyPressed && zd.key.code == sf::Keyboard::Escape )
            {
                okno.close();
            }
            if( zd.type == sf::Event::Closed )
            {
                okno.close();
            }
        }
        okno.draw( tekst );
        okno.draw( sprite );
        okno.draw( czw );
        okno.display();
    }
}

Chodzi o to, że nie można w żaden sposób wyświetlić obrazka przez sf::Image.
Z góry dziękuję i proszę o pomoc.
P-91604
Wasilek
» 2013-09-06 22:16:58
Dokumentacja - sf::Image -> "Class for loading, manipulating and saving images."
Dokumentacja - sf::Texture -> "Image living on the graphics card that can be used for drawing."
W skrócie:
Wczytuj od razu do sf::Texture i skorzystaj z
sprite.setTexture( texture );
, albo (jeżeli chcesz manipulować obrazkiem) wczytaj do sf::Image (tak jak to robisz teraz) następnie użyj
texture.loadFromImage( image, intrect );
 i dalej już rób tak jak w poprzedniej propozycji :) Zapewne przerzucałeś się z SFML 1.6 i nie zauważyłeś dość dużych zmian z klasami :P
P-91605
oputyk
Temat założony przez niniejszego użytkownika
» 2013-09-07 09:24:25
No tak... Dzięki za pomoc :D
P-91611
« 1 »
  Strona 1 z 1