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

[SFML 2.1] Ustawianie tekstu za pomocą setString() i "Problem z aplikacją..."

Ostatnio zmodyfikowano 2013-12-21 18:23
Autor Wiadomość
Puf
Temat założony przez niniejszego użytkownika
[SFML 2.1] Ustawianie tekstu za pomocą setString() i "Problem z aplikacją..."
» 2013-12-12 22:56:17
Witam serdecznie.
Próbuje wyświetli tekst na ekranie mojej aplikacji, jednak po jej uruchomieniu wyświetla mi komunikat, że wystąpił problem z aplikacją i została ona zamknięta, lecz podczas kompilacji nie otrzymuje żadnych logów o błędzie.

Oto kod:
C/C++
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>
#include <iostream>

int main()
{
    sf::RenderWindow App( sf::VideoMode( 800, 600, 32 ), "Test" );
   
    sf::Font font;
    if( font.loadFromFile( "arial.ttf" ) )
         std::cout << "Czcionka wczytana" << std::endl;
   
    sf::Text text;
    text.setFont( font );
    text.setString( "abc" );
   
    while( App.isOpen() )
    {
        sf::Event zdarzenie;
        while( App.pollEvent( zdarzenie ) )
        {
            if( zdarzenie.type == sf::Event::Closed )
                 App.close();
           
        }
        App.clear();
        App.draw( text );
        App.display();
    }
    return 0;
}

Próbowałem wyświetlić tekst w ten sposób, ale i to nie działa:
C/C++
sf::Text text( "abc", font, 24 );

Natomiast, jeżeli nie prześlę żadnego znaku do setString, to aplikacja uruchamiana jest bez problemu.
C/C++
text.setString( "" );
P-99075
DejaVu
» 2013-12-17 16:36:19
1. Sprawdź czy czcionka się wczytała.
2. Sprawdź czy masz pliki *.dll w katalogu obok pliku *.exe.
P-99437
MrPoxipol
» 2013-12-17 19:18:29
Ten kod nie jest poprawny.
P-99484
Puf
Temat założony przez niniejszego użytkownika
» 2013-12-17 22:33:28
DejaVu:
C/C++
if( font.loadFromFile( "arial.ttf" ) )
std::cout << "Czcionka wczytana" << std::endl
Zwraca: "Czcionka wczytana".

W katalogu obok exe mam takie dll'ki:
sfml-graphics-2.dll
sfml-window-2.dll
sfml-system-2.dll
libstdc++-6.dll

Nie wiem czy to istotne, ale kompilowałem bibliotekę samodzielnie i wszystko  działało dopóki nie próbowałem wyświetlić tekstu.
Zauważyłem, że jeżeli wykomentuje linijkę z text.setFont(font), to program się uruchamia.

MrPoxipol:
Bądź więc tak dobry i napisz dlaczego tak myślisz.

P-99543
Monika90
» 2013-12-17 22:39:36
C/C++
App.clear();
App.draw( text );
App.display();
To w złym miejscu jest.
P-99544
Puf
Temat założony przez niniejszego użytkownika
» 2013-12-17 22:48:41
Według tutoriala ze strony głównej biblioteki, tak powinno być - wewnątrz głównej pętli.
P-99545
Monika90
» 2013-12-17 22:50:33
W zamieszczonym kodzie, nie jest w głównej pętli.

Poza tym, upewnij się czy plik "arial.ttf" jest w katalogu bieżącym programu.
P-99546
Puf
Temat założony przez niniejszego użytkownika
» 2013-12-17 22:54:41
Wybacz, już poprawiłem. Sprawdzałem wielokrotnie :),plik z czcionką jest na swoim miejscu.
P-99547
« 1 » 2
  Strona 1 z 2 Następna strona