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

[SFML 2.1] wczytywanie tekstu z klawiatry i wypisywanie na ekran

Ostatnio zmodyfikowano 2014-06-03 17:54
Autor Wiadomość
chitler
Temat założony przez niniejszego użytkownika
[SFML 2.1] wczytywanie tekstu z klawiatry i wypisywanie na ekran
» 2014-06-03 17:20:16
Wydawało mi się że prosta sprawa. tak wygląda kod

displayNameText jest zdefiniowany wczesniej jako string
czar to char;

żeby to działało muszę kliknąć na konsolę. ale nawet i potem to nie działa tak jak powinno. wydaje mi się że getch() w ogóle nie jest odpowiednią funkcją do zczytywania znaków z klawiatury w SFMLu

jak zrobić coś takiego poprawnie?

C/C++
while( Window.isOpen() )
{
    displayNameText.setString( displayName ); //na poczatku wartosc displayName to"*", tak dla testu, zeby widziec gdzie sie wyswietla
   
   
    sf::Event Event;
    while( Window.pollEvent( Event ) )
    {
       
       
        switch( Event.type )
        {
        case sf::Event::Closed:
            Window.close();
            break;
        case sf::Event::MouseButtonPressed:
            break;
        case sf::Event::KeyPressed:
            cout << "nacisnieto przycisk" << endl;
            czar = getch();
            displayName += czar;
           
            break;
           
            default:
            break;
        }
       
    }
   
    Window.clear( sf::Color::Black );
   
    Window.draw( displayNameText );
    Window.display();
}
P-111360
Medivox
» 2014-06-03 17:27:29
Nie jestem pewien, czy o to Ci chodzi, ale znak pobrany przez getch() z biblioteki CONIO jest zapisany w zmiennej typu int, którą na zewnątrz wyprowadza się funkcją putch().

EDIT:
Jeśli chcesz rozszerzyć zmienną typu string o pobrany znak, to:

char znak = (char)czar ;
displayName += znak ;

Powinno działać.
P-111362
maly
» 2014-06-03 17:35:14
P-111363
chitler
Temat założony przez niniejszego użytkownika
» 2014-06-03 17:54:46
rozwiązanie od wormsta
C/C++
case sf::Event::KeyPressed:
cout << "nacisnieto przycisk" << endl;

i = Event.key.code;
czar = i + 65;
displayName += czar;
break;
P-111371
« 1 »
  Strona 1 z 1