Bonsoir et merci du temps que tu va passer pour moi.
Voici le code complet de mon traitement des évènements :
bool ArchiVue::treatEvents()
{
bool result = false;
if(_window->isOpen())
{
result = true;
Event event;
while (_window->pollEvent(event))
{
if(event.type == sf::Event::KeyPressed)
{
cout<<"Espion 1 event"<<endl;
if (event.type == sf::Event::TextEntered)
{
cout<<"Here"<<endl;
if (event.text.unicode < 128)
cout << "Caractere : "<<static_cast<char>(event.text.unicode)<<endl;
}
}
}
}
return result;
}
Le problème c'est qu'il m'affiche que "Espion 1 event" il ne m'affiche jamais "Here" et encore moins le texte entré.
C'est normal que le "TextEntered" soit à l'intérieur du "KeyPressed" car ce n'est pas le code complet, et j'ai besoin de le laisser pour éviter qui me fasse 36 tests de if pour une action complètement différente. Ce code à la même action : c'est à dire aucune (sauf le "Espion 1 event" qui s'affiche).
Au cas où, (vu que maintenant je reviendrais que demain matin), voiçi le code complet de cette fonction :
bool ArchiVue::treatEvents()
{
bool result = false;
if(_window->isOpen())
{
result = true;
Event event;
while (_window->pollEvent(event))
{
if(event.type == sf::Event::KeyPressed)
{
if(event.key.code == sf::Keyboard::Escape)//Appui sur la touche Echap
{
//Reactive l'ecran de veille apres fin execution du programme
if(bSaverActive)
SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, 1, 0, 0);
result = false;
}
if(_etat == "Demande nom")
{
cout<<"Espion 1 event"<<endl;
bool modifNom = false;
if (event.type == sf::Event::TextEntered)
{
cout<<"Here"<<endl;
if (event.text.unicode < 128)
cout << "Caractere : "<<static_cast<char>(event.text.unicode)<<endl;
}
}
}
else if((event.type == sf::Event::MouseButtonPressed) && (event.mouseButton.button == sf::Mouse::Left))//Clic gauche
{
if(_etat == "Menu")
{
if(sourisDessus(_sprite_quitter_select))
{//Reactive l'ecran de veille apres fin execution du programme
if(bSaverActive)
SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, 1, 0, 0);
result = false;
}
else if(sourisDessus(_sprite_nouvelle_partie_select))
{
_etat = "Demande nom";
}
else if(sourisDessus(_sprite_charger_select))
{
_etat = "Charger partie";
}
}
}
}
}
return result;
}