Krótko rzecz ujmując: ucząc się z kursu na waszej stronie trafiłem do działu z wczytaniem obrazu i tu problem taki,że nie chce się on wczytać,jedyne co widze to czarne tło i tyle(testowane na SFML 1.6 oraz 2.0 ).Aby przetestować czy biblioteka mi właściwie działa skompilowałem kod z kursu:
#include <SFML/Graphics.hpp>
#include <cmath>
int main()
{
sf::RenderWindow okno( sf::VideoMode( 320, 240 ), "Kurs SFML 2.0 - http://cpp0x.pl" );
sf::Clock stoper;
while( okno.isOpen() )
{
sf::Event event;
while( okno.pollEvent( event ) )
{
if( event.type == sf::Event::Closed )
okno.close();
}
okno.clear();
sf::CircleShape ksztalt( std::sin( stoper.getElapsedTime().asSeconds() ) * okno.getSize().y / 8 + okno.getSize().y / 4 );
ksztalt.setOrigin( sf::Vector2f( ksztalt.getRadius(), ksztalt.getRadius() ) );
ksztalt.setPosition( okno.getSize().x / 2.0f, okno.getSize().y / 2.0f );
ksztalt.setFillColor( sf::Color::Yellow );
okno.draw( ksztalt );
okno.display();
}
return 0;
}
oraz ten ze strony SFML:
#include <SFML/Graphics.hpp>
int main()
{
sf::RenderWindow window( sf::VideoMode( 200, 200 ), "SFML works!" );
sf::CircleShape shape( 100.f );
shape.setFillColor( sf::Color::Green );
while( window.isOpen() )
{
sf::Event event;
while( window.pollEvent( event ) )
{
if( event.type == sf::Event::Closed )
window.close();
}
window.clear();
window.draw( shape );
window.display();
}
return 0;
}
#include <SFML/System.hpp>
#include <iostream>
int main()
{
sf::Clock Clock;
while( Clock.GetElapsedTime() < 5.f )
{
std::cout << Clock.GetElapsedTime() << std::endl;
sf::Sleep( 0.5f );
}
return 0;
}
w obu przypadkach wychodzi na to samo - czarny ekran,no i oczywiście jeszcze ten z samego już kursu próbowałem skompilować(rozdział z wczytywaniem obrazu).Żadnego obrazu mi nie wczytuje.Próbowałem to zrobić na Linuxie oraz na Windowsie,na Linuxie to mniej więcej tak robiłem jak ze strony SFML:
http://www.sfml-dev.org/tutorials/2.0/start-linux.php na 2.0 i na 1.6
http://www.sfml-dev.org/tutorials/1.6/start-linux.phpLinux Mint 15:
Instalowałem biblioteke z menedżera albo "ręcznie"bibloteki wklejałem.Najpierw próbowałem za pomocą terminalu komendami jak na stronie - albo czarny ekran albo błędy(jeśli chodzi o te kody z testowaniem biblioteki) z tym,że rzekomo biblioteki tej "graphic" nie można odnaleźć mimo,że jest.Jak naprawiłem problem z tą "grafiką"to potem przyszedł error z niemożliwością znalezienia biblioteki "libsndfile-1.dll"której nie ma nigdzie w tej standardowej paczce(nie podam wam teraz erroru dokładnego z tym,ale wy chyba wiecie o co chodzi,standardowy error "cannot find costamcostam"lub coś w tym stylu).Próbowałem też użyć Code::Blocks do tego,czyli robiłem jak w kursie na waszej stronie,ale efekty podobne były.Przy Linuxie używałem SFML 1.6 oraz 2.0.A tak to obsługa zdarzeń dla przykładu ładnie działa itd.
Przy wczytywaniu obrazu to standardowo,podawałem w kodzie nazwe obrazu "obraz.png" i czarny ekran,to samo jak dodawałem ścieżke do obrazu.
sf::Image obraz;
obrazek.LoadFromFile( "obraz.png" );
Dla przykładu:P
Teraz Windows 7: używałem Code::Blocks aby skompilować ten program,postępowałem według kursu na stronie jak to wszystko zalinkować itp.Były problemy z libem "graphic" którego nie wykrywało,ten problem jakoś rozwiązałem.Potem pojawił się problem z libem "libsndfile-1.dll"którego w paczce na stronie nie było(GCC 4.7 TDM (SJLJ) - 32 bits) i zrobiłem "trick",że przeniosłem to z folderu "SFML-Master" do folderu bin/Debug.Dobra - wszystko git,ale...program się kompiluje,ale po prostu nic się nie wyświetla.Przy Windowsie używałem SFML 2.0.Pliki DLL wstadziłem do debug,wszystko właściwie polinkowałem.
Jakieś pomysły co zrobić z tym?Ah,i pragne zaznaczyć,że ten problem wystąpił już kilka miesięcy temu jak próbowałem sił w tej bibliotece,efekty takie same były przy bibliotece SDL - czyli nic nie wczytywało.To było akurat ma Mincie.Jeżeli napisałem temat nie tu gdzie trzeba,to sorki no i za tą ściane tekstu.Tylko nie bijcie jak czegoś wam zabraknie.