Bonjour,
Je taff sur un projet où j'ai besoin de faire effectuer des actions différentes aux cliques de souris.
Le code est simple de base, le problème c'est qu'il faut que j'effectue un double clique pour que l'action s'affiche sur le dessin.
Exemple ici avec un rond noir et un rond gris.
...
void dessiner()
{
smooth();
ellipse(mx, my, a, b);
}
void nativeMousePressed( int x, int y, int button ) {
if (mouseButton == LEFT) {
a = 13;
b = 13;
fill(0);
stroke(0);
}
else if (mouseButton == RIGHT) {
a = 13;
b = 13;
fill(150);
stroke(200);
}
}
...
J'utilise un global listener pour car les actions qui se déroulent doivent provenir de l'utilisation quotidienne de l'ordinateur. Et donc je n'ai pas besoin de voir la fenêtre processing ni qu'elle soit active. Je cherche juste à récuperer un dessin au bout de X temps d'utilisation de l'ordinateur.
Void dessiner est dans le void draw. mx et my correspondent aux coordonnés X et Y de la souris.
En bref pourquoi je doit cliquer deux fois pour que l'action se passe sur le dessin ?
Peut être du mauvaise utilisation du global listener... je ne sais pas trop.
Merci d'avance.
Hors ligne
Bonjour,
Je n'aurais pas imaginé qu'il soit possible de récupérer les évènements souris hors de la fenêtre active! Est ce que tu utilises quelquechose comme jnativehook ? https://github.com/kwhat/jnativehook
Hors ligne
bonjour
Oui j'utilise jnativehook
Hors ligne
nativeMousePressed( int x, int y, int button ) reçoit la variable button et après dans le code, le test se fait sur la variable mouseButton qui est une variable de processing, est ce qu'il ne faudrait pas plutôt tester button ?
Hors ligne
ha oui pas bête... je vais tester ! j'avais la tête dedans et j'ai vraiment pas pensé à faire cette petite chose simple ^^
En faite le code actuel avec mouseButton fonctionne dans le nativeMouseCliked c'est juste qu'il n'arrête pas de me faire des cercle tout le long du déplacement
Ps : et l'astuce de passer par le variable button ne fonctionne pas des masses avec left et right dommage.
Dernière modification par dbahx (2016-06-28 20:06:54)
Hors ligne
J'ai trouvé la solution... Il suffisait simplement de mettre la valeur 1 à la variable button pour le clique G et 2 pour le D ^^
Je n'arrivais pas à voir ces valeurs dans processing petit bug.
Hors ligne