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

[C++][SFML 2.0 / 1.6] Program nie wyświetla obrazu

Ostatnio zmodyfikowano 2013-07-16 14:04
Autor Wiadomość
Pandrodox
Temat założony przez niniejszego użytkownika
[C++][SFML 2.0 / 1.6] Program nie wyświetla obrazu
» 2013-07-16 00:15:18
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:
C/C++
#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();
           
        } //while
        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();
    } //while
    return 0;
}
oraz ten ze strony SFML:
C/C++
#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;
}
C/C++
#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.php

Linux 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.
C/C++
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.
P-87996
Mrovqa
» 2013-07-16 00:31:35
Plik libsndfile-1.dll jest w folderze bin ściągniętej paczki, tudzież extlibs, jeżeli kompilujesz ze źródeł. Na pewno pobierasz odpowiednie dla siebie paczki SFMLa? Linkujesz odpowiednią wersję (Debug/Release) do programu? W przypadku wersji statycznej biblioteki dodajesz globalnie makro SFML_STATIC? Na konsoli nie ma przypadkiem jakichś logów? W ostateczności możesz własnoręcznie skompilować bibliotekę ze źródeł.
P-87997
DejaVu
» 2013-07-16 00:44:36
1. Pierwszy kod dotyczy SFML 2.0.
2. Pierwszy kod niczego nie wczytuje.
3. Pierwszy kod wyświetla tylko kształt.
4. Pierwszy kod nie potrzebuje żadnych tekstur ani innych dodatkowych plików - jedyne co musisz mieć to poprawne biblioteki do używanego kompilatora.
5. Mało prawdopodobne, abyś miał złe biblioteki systemowe do obsługi OpenGL-a na Windowsie i Linuksie.
6. SFML używa OpenGL-a do renderowania czegokolwiek.
7. Wymieniłeś dwie różne platformy (Windows i Linuks) oraz dwie różne wersje biblioteki (SFML 1.6 i SFML 2.0) - skoncentruj się na jednym systemie i jednej bibliotece.
8. » Kurs SFML 2.0, C++ » Instalacja i konfiguracjaKonfiguracja SFML 2.0 (Code::Blocks) lekcja - proces instalacji opisany we wskazanym kursie był testowany przez wiele osób i wszyscy, którzy 'krzyczeli', że coś nie działa mieli błędy konfiguracyjne projektów lub błędne paczki pobrane.
9. Jeżeli działają Ci inne aplikacje używające OpenGL-a, to patrz pkt 8, bo z dużym prawdopodobieństwem wszystko rozbija się o konfigurację i linkowane biblioteki.

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.
Skoro jakoś rozwiązywałeś problemy to znaczy, że je źle rozwiązałeś. W kursie jest praktycznie rzecz biorąc obrazkowo przedstawiony proces konfiguracji, który działa, bo już co najmniej 10 razy konfigurowałem projekty od zera, bo znajdowały się osoby, które twierdziły 'że coś nie działa'. Za każdym razem ja osiągałem sukces i nagle po moim 'sukcesie' również osoby zgłaszające problem go rozwiązywały robiąc KROK PO KROKU to, co jest napisane we wskazanym kursie.
P-87998
Pandrodox
Temat założony przez niniejszego użytkownika
» 2013-07-16 14:04:26
Nie,problem był taki,że nie odpalało mi okna bo w Code::Blocks na Windowsie mi się coś przestawiło i dlatego kompilowało ale nic się nie wyświetlało.Sprawdzałem na wersji 2.0 i ładuje mi obrazki itp. więc wszystko dobrze zalinkowałem.Cóż,dzięki za pomoc.
P-88014
« 1 »
  Strona 1 z 1