1
Fenêtrage / Probleme avec des MouseButton [EVENT]
« le: Mai 23, 2017, 04:40:57 pm »
Salut a tous !
En gros , j'ai un soucis avec l'Event
Bon ... j'ai un soucis avec SFML , je code en 2.4.2 , sous visual studio 2012 en C++ .
J’essaie de créer un petit jeu de bataille naval et j'ai été trés satisfait pour le moment , une biblio très sympa a vrai dire ! jusqu’à ce que je fasse gérer les Event
j'ai beau suivre le tuto officiel et me débrouiller je trouve pas du tout (https://www.sfml-dev.org/tutorials/2.4/index-fr.php)
Il semblerai que l'event se produise en boucle , j'ai donc créer un petit code pour confirmer mes soupçons , que voici :
et en un clic droit , j'obtient une bande compléte de carré jaune , ce qui veux dire qu'il se répète en boucle ? je ne trouve rien a vrai dire ... et je sèche xDDD : comment éviter cette répétition ?
En gros , j'ai un soucis avec l'Event
Bon ... j'ai un soucis avec SFML , je code en 2.4.2 , sous visual studio 2012 en C++ .
J’essaie de créer un petit jeu de bataille naval et j'ai été trés satisfait pour le moment , une biblio très sympa a vrai dire ! jusqu’à ce que je fasse gérer les Event
j'ai beau suivre le tuto officiel et me débrouiller je trouve pas du tout (https://www.sfml-dev.org/tutorials/2.4/index-fr.php)
Il semblerai que l'event se produise en boucle , j'ai donc créer un petit code pour confirmer mes soupçons , que voici :
int main()
{
const int margeFen = 70 ;
const int tailleCase = 40 ;
const int margeTabl = 40 ;
const int nbCase = 10 ;
int compteur = 0 ;
vector<RectangleShape> debugg ;
RenderWindow window(VideoMode((margeFen*2) + (tailleCase*nbCase*2)+margeTabl, (margeFen*2) + tailleCase*nbCase), "Battaille Naval");
while (window.isOpen())
{
Event event;
while (window.pollEvent(event))
{
if (event.type == Event::Closed)
window.close();
}
if(event.type == sf::Event::MouseButtonReleased)
{
if (event.mouseButton.button == sf::Mouse::Right)
{
RectangleShape rect(Vector2f(50 , 50));
rect.setFillColor(Color::Yellow);
rect.setPosition( 60*compteur , 100 );
compteur++;
debugg.push_back(rect);
}
}
window.clear();
//-----------[DRAWING]-->[DEBUT]----------
for (int i = 0 ; i < debugg.size() ; i++)
{
window.draw(debugg.at(i));
}
//------------[DRAWING]-->[FIN]-----------
window.display();
}
return 0;
}
{
const int margeFen = 70 ;
const int tailleCase = 40 ;
const int margeTabl = 40 ;
const int nbCase = 10 ;
int compteur = 0 ;
vector<RectangleShape> debugg ;
RenderWindow window(VideoMode((margeFen*2) + (tailleCase*nbCase*2)+margeTabl, (margeFen*2) + tailleCase*nbCase), "Battaille Naval");
while (window.isOpen())
{
Event event;
while (window.pollEvent(event))
{
if (event.type == Event::Closed)
window.close();
}
if(event.type == sf::Event::MouseButtonReleased)
{
if (event.mouseButton.button == sf::Mouse::Right)
{
RectangleShape rect(Vector2f(50 , 50));
rect.setFillColor(Color::Yellow);
rect.setPosition( 60*compteur , 100 );
compteur++;
debugg.push_back(rect);
}
}
window.clear();
//-----------[DRAWING]-->[DEBUT]----------
for (int i = 0 ; i < debugg.size() ; i++)
{
window.draw(debugg.at(i));
}
//------------[DRAWING]-->[FIN]-----------
window.display();
}
return 0;
}
et en un clic droit , j'obtient une bande compléte de carré jaune , ce qui veux dire qu'il se répète en boucle ? je ne trouve rien a vrai dire ... et je sèche xDDD : comment éviter cette répétition ?