Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1738 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Placer la souris à un endroit précis ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Placer la souris à un endroit précis ?

n°968159
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 01-02-2005 à 11:46:42  profilanswer
 

Bonjour à tous !
J'ai un gros problème. J'essaie de faire une caméra à la quake en jogl.
 
 
En gros jogl étant un wrapper OpenGL, le comportement est le même que OpenGL, il y a une méthode display() qui affiche l'univers 3D.
Par contre tout le travail de glut (gestion des fenêtres, clavier, souris) est abandonné au profit de JAVA (Awt et Listener)
 
 
La méthode display() est appelée en boucle au moyen d'un Animator (une classe de jogl dont le but est de faire tourner display() dans un thread à part)
 
 
Pour ma caméra (classe Camera), je fais au début de display() un camera.setPerspective(gl) qui applique des rotations et des translations à l'objet gl (qui représente le monde 3D pour être rapide).
Donc à chaque itération la perspective avec laquelle on voit le monde est susceptible de changer.
 
 
Maintenant le problème à proprement parler : ma classe Camera.  
Elle implémente évidemment KeyListener et MouseMotionListener, et dans mon monde 3D il y a :
 gldrawable.addKeyListener(camera);
 gldrawable.addMouseMotionListener(camera);
Ce qui permet d'écouter tout ce qui se passe dans la fenêtre OpenGL (gldrawable est de type GLDrawable, un objet qui encapsule GL et GLU qu'on utilise classiquement en OpenGL)
 
 
Dans mouseMoved(MouseEvent e) de la classe Camera, l'idée est la suivante :
   on cherche le centre de la fenêtre
   on regarde la position du curseur de souris
   on calcule la différence
   on fait des rotations en conséquence
   on replace le curseur de souris au centre de la fenêtre (dans Quake la souris reste toujours au centre)
 
 
Pour replacer le curseur de souris au centre, je n'ai rien trouvé d'autre que la classe Robot, utilisé pour les démonstrations, et qui permet de déplacer la souris, de cliquer avec, de taper au clavier....
La dernière ligne de mon implémentation de la méthode mouseMoved est donc :
robot.mouseMove(centerX, centerY);
 
 
SANS "robot.mouseMove(centerX, centerY)" on capte tous les évenements (un println affiche un message à chaque déplacement d'un pixel ou presque)
 
AVEC "robot.mouseMove(centerX, centerY)" on reçoit un évenement toutes les demi-secondes et encore je suis gentil
 
D'après la doc java, robot est fait pour ne pas générer d'event, et heureusement sinon il y aurait un appel récursif sans fin à mon implémentation de mouseMoved !
Mais apparement cela gêne le reste du programme...
 
Il semble y avoir un comportement plus rapide si je lance le programme avec un "nice -20 java Test" (qui augmente la priorité du processus sous Linux), comme si l'Animator et le Robot se bouffaient l'un l'autre :/
 
 
 
Des idées pour placer le curseur de souris où l'on veut SANS utiliser robot ?


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
mood
Publicité
Posté le 01-02-2005 à 11:46:42  profilanswer
 

n°968540
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 01-02-2005 à 15:49:26  profilanswer
 

J'ai la *légère* impression d'avoir fait un bide :D


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°968568
the real m​oins moins
Posté le 01-02-2005 à 16:04:37  profilanswer
 

hmmm. sans robot.. je sais pas


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°968665
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 01-02-2005 à 18:13:33  profilanswer
 

:( Merci pour la réponse en tout cas  :jap:


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Placer la souris à un endroit précis ?

 

Sujets relatifs
VB .NET récupérer la position de la souris[C#/Dx 9] position souris/mesh
Boutons de la souris !affiche ip+navigateur sur panneau souris qui tient!!!!!
probleme de gestion de la souris en C[MFC] OnMouseMove() ou souris suractive
Souris enfermée dans la fenêtre ?Expression régulières ! Je suis au bon endroit ?
changement image au passage de la souris ? non JS 
Plus de sujets relatifs à : Placer la souris à un endroit précis ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR