1
Fenêtrage / Re : TextEntered sfml2.0 et rien
« le: Mars 31, 2013, 12:32:17 pm »
Bonjour et merci.
Effectivement ce n'était pas normal !
Mais comme il m'affichait le 1er cout pour moi le prolbème n'était pas là.
Du coup mon problème est résolu. Voici le code final de cette partie, si ca peut aider quelqu'un :
Effectivement ce n'était pas normal !
Mais comme il m'affichait le 1er cout pour moi le prolbème n'était pas là.
Du coup mon problème est résolu. Voici le code final de cette partie, si ca peut aider quelqu'un :
void ArchiVue::modifNomJoueur()
{
_s_nom_joueur = _c_nouveau_nom_joueur;
supprimeCaractereWstring(_s_nom_joueur, ' ');//Enleve les espaces en fin de chaine
}
bool ArchiVue::treatEvents()
{
wchar_t _c_nouveau_nom_joueur[25];
wstring _s_nom_joueur = "";
int _nb_char_nouveau_nom = 0;
bool result = false;
if(_window->isOpen())
{
result = true;
Event event;
while (_window->pollEvent(event))
{
if(event.type == sf::Event::TextEntered)
{
if (event.text.unicode == '\b')//Effacement -> backspace
{
if(_nb_chars_nouveau_nom > 0)
{
_c_nouveau_nom_joueur[_nb_chars_nouveau_nom-1] = ' ';
_nb_chars_nouveau_nom--;
modifNomJoueur();
}
}
else if (event.text.unicode < 255)//Ajout d'un caractère même accentué ou espace
{
if(_nb_chars_nouveau_nom < 24)
{
_c_nouveau_nom_joueur[_nb_chars_nouveau_nom] = static_cast<wchar_t>(event.text.unicode);
_nb_chars_nouveau_nom++;
modifNomJoueur();
}
}
}
}
}
}
return result;
}
{
_s_nom_joueur = _c_nouveau_nom_joueur;
supprimeCaractereWstring(_s_nom_joueur, ' ');//Enleve les espaces en fin de chaine
}
bool ArchiVue::treatEvents()
{
wchar_t _c_nouveau_nom_joueur[25];
wstring _s_nom_joueur = "";
int _nb_char_nouveau_nom = 0;
bool result = false;
if(_window->isOpen())
{
result = true;
Event event;
while (_window->pollEvent(event))
{
if(event.type == sf::Event::TextEntered)
{
if (event.text.unicode == '\b')//Effacement -> backspace
{
if(_nb_chars_nouveau_nom > 0)
{
_c_nouveau_nom_joueur[_nb_chars_nouveau_nom-1] = ' ';
_nb_chars_nouveau_nom--;
modifNomJoueur();
}
}
else if (event.text.unicode < 255)//Ajout d'un caractère même accentué ou espace
{
if(_nb_chars_nouveau_nom < 24)
{
_c_nouveau_nom_joueur[_nb_chars_nouveau_nom] = static_cast<wchar_t>(event.text.unicode);
_nb_chars_nouveau_nom++;
modifNomJoueur();
}
}
}
}
}
}
return result;
}