Forum de la communauté SFML

Aide => Général => Discussion démarrée par: texto15 le Janvier 07, 2020, 04:33:24 pm

Titre: [RESOLU] La souris se bloque lorsqu'on appuie sur une touche
Posté par: texto15 le Janvier 07, 2020, 04:33:24 pm
Bonjour à tous, je code depuis novembre en C++ et j'ai décidé d'utiliser SFML pour m'aider dans un projet scolaire. Pour faire simple, le but du code est de colorier avec la souris lorsque la touche Space est appuyée. Après un premier test concluant où pour dessiner il fallait dessiner appuyer sur le clic droit de la souris, j'ai simplement changer cet événement avec un KeyPressed comme dans le code ci dessous :

 
#include <SFML/Graphics.hpp>
#include <iostream>
#include "interface.h"
#include "toucher.h"
#include <vector>


#define R 5
using namespace std;
using namespace sf;


int main()
{

   int ligneX=400, ligneY=50, taille=0, x, y , Dessin = false;
   vector<point> tab_point;
   
   RenderWindow window(VideoMode(480,320), "SFML works!",Style::Fullscreen);
   window.clear();
   Grand_cercle(window);
   Position_ligne(ligneX, ligneY,window);
   
   point p1;
   
   while (window.isOpen())
   {
      Event event;
      while (window.pollEvent(event))
      {
         if (event.type == Event::Closed)
            {window.close();}
         
         
         if (event.type == Event::KeyPressed)
         {
            if (event.key.code == Keyboard::Space)
            {
               Dessin = true;
            }
         }
         
         if (event.type == Event::KeyReleased)
         {
            if (event.key.code == Keyboard::Space)
               Dessin = false ;
         }
         
         if (event.type == Event::KeyPressed)
         {
            if (event.key.code == Keyboard::Q)
            {
               window.close();
            }
         }
      }
      
      
      
      if (Dessin)
      {
         Position_Curseur(&x, &y, window);
         p1.x = x;
         p1.y = y;
         
         tab_point.push_back(p1);
         taille ++;
      }
      
      window.clear();
      Grand_cercle(window);
      Position_ligne(ligneX, ligneY,window);
      Dessine_point(x,y, window, R);
      Dessine_plus_points(tab_point, taille, window, R);
      window.display();
   }
 

Le problème maintenant est que lorsqu'on reste appuyer sur Space, la souris ne bouge plus dans la fenêtre, elle est bloquée.
J'ai essayé plusieurs autres options telle que l'utilisation de isKeyPressed mais rien ne remédie au problème.

Merci pour vos réponses
Titre: Re: La souris se bloque lorsqu'on appuie sur une touche
Posté par: G. le Janvier 07, 2020, 07:46:46 pm
Je pense pas que ça vienne de SFML.
Si tu fais pareil ailleurs (sur le bureau, sur n'importe quelle fenêtre) est-ce que ça bloque ? Si oui et que c'est un ordinateur portable cherche comment désactiver le PalmCheck (controle de la paume) dans windows.
Titre: Re: La souris se bloque lorsqu'on appuie sur une touche
Posté par: texto15 le Janvier 10, 2020, 08:58:39 am
Effectivement, en exécutant le code sur un autre ordi, le code marche bien, le blocage est du a l'ordinateur portable. Ilsuffit de brancher un autre clavier en USB pour contourner le problème. Je le renseigné pour désactiver la fonctionnalité. Merci