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

[SFML, C++] Wyświetlanie zmiennej typu int

Ostatnio zmodyfikowano 2011-07-27 20:45
Autor Wiadomość
Fletcher
Temat założony przez niniejszego użytkownika
[SFML, C++] Wyświetlanie zmiennej typu int
» 2011-07-27 18:17:00
C/C++
sf::String tekst;
int i = 0;
(...)
//W petli
i++;
tekst.SetText( str );
Window.Draw( Hello );
Window.Display();

Kiedy chce wyświetlić zmienną i (już po konwersji) napis nie jest zastępowany tylko pojawia się obok starego i tak w kółko.
P-37348
m4tx
» 2011-07-27 18:23:57
Pokaż więcej kodu.
P-37355
DejaVu
» 2011-07-27 18:35:56
Ustawiaj przed wypisaniem tekstu jego pozycję.
P-37360
Fletcher
Temat założony przez niniejszego użytkownika
» 2011-07-27 20:11:56
C/C++
////////////////////////////////////////////////////////////
// Headers
////////////////////////////////////////////////////////////
#include <SFML/Graphics.hpp>
#include <sstream>

////////////////////////////////////////////////////////////
/// Entry point of application
///
/// \return Application exit code
///
////////////////////////////////////////////////////////////
int main()
{
    // Create main window
    sf::RenderWindow App( sf::VideoMode( 800, 600 ), "SFML Fonts" );
   
    // Load a font from a file
    int a = 1;
    // Create a graphical string
    sf::String Hello;
   
    Hello.SetColor( sf::Color( 0, 128, 128 ) );
    Hello.SetPosition( 100.f, 100.f );
    Hello.SetRotation( 15.f );
    Hello.SetSize( 14.f );
   
    // You can also use the constructor
    sf::String Bonjour( "Salut !\nComment ça va ?", sf::Font::GetDefaultFont(), 30.f );
    Bonjour.SetColor( sf::Color( 200, 128, 0 ) );
    Bonjour.SetPosition( 200.f, 300.f );
   
    // Start game loop
    std::ostringstream ss;
    while( App.IsOpened() )
    {
        // Process events
        sf::Event Event;
        while( App.GetEvent( Event ) )
        {
            // Close window : exit
            if( Event.Type == sf::Event::Closed )
                 App.Close();
           
        }
       
        // Make the second string rotate
        Bonjour.Rotate( App.GetFrameTime() * 100.f );
       
        // Clear screen
        App.Clear();
        a++;
        // Draw our strings
       
        Hello.SetPosition( 50, 50 );
        ss << a;
        std::string tekst = ss.str();
        Hello.SetText( tekst );
        App.Draw( Hello );
        App.Draw( Bonjour );
       
       
       
        // Finally, display rendered frame on screen
        App.Display();
    }
   
    return EXIT_SUCCESS;
}

Cały kod pobrany z poradnika sfml i delikatnie przerobiony.
P-37373
akwes
» 2011-07-27 20:27:48
C/C++
ss << a;

Dopisuje "a" do strumienia

albo to daj w pętli while
C/C++
std::ostringstream ss;
zamiast przed nią

albo czyść strumieć, albo zrezygnuj ze strumienia.
P-37376
Fletcher
Temat założony przez niniejszego użytkownika
» 2011-07-27 20:45:54
Dzięki działa.
P-37381
« 1 »
  Strona 1 z 1