Question

Je suis en train d’écrire un jeu en Java et j’ai besoin d’une interaction avec la souris. J'allais utiliser MouseAdapter, mais je me suis penché dessus, et il ne semble pas avoir aucun moyen de déterminer l'emplacement du pointeur de la souris sans un clic ou une action en cours ... Quelle serait la méthode recommandée de faire cela?

Quelques questions:

  1. La souris " emplacement " faire référence à la position de la souris par rapport aux limites du moniteur, aux limites du jeu, ou serait-il représenté comme des mouvements par rapport à une position précédente?

  2. Comment désactiver le pointeur de la souris dans une application fenêtrée ? (Par exemple, un jeu de tir à la première personne où les mouvements de la souris font pivoter la vue des joueurs plutôt que de déplacer un pointeur) Est-ce possible?

Était-ce utile?

La solution

Regardez le MouseMotionListener . Cela vous permettra de suivre les mouvements de la souris. Il vous indiquera l'emplacement de la souris dans le composant auquel elle est attachée. Mais si vous regardez la classe SwingUtilities Certaines méthodes pratiques permettent de convertir des points à l'écran ou à d'autres composants ou au moniteur.

Pour le curseur, vous avez la possibilité de définir votre propre bitmap pour le curseur. Vous pouvez rechercher ici . Ou, pour une réponse SO plus récente, vous pouvez ici . Vous pouvez donc masquer le curseur ou le définir sur un bitmap vide, puis intercepter les mouvements et les événements de la souris pour contrôler votre vue.

Autres conseils

Un tutoriel sur les événements de souris est disponible à l'adresse suivante: http://java.sun.com/docs/books/ tutorial / uiswing / events / mouselistener.html

Si vous regardez ici: http://java.sun.com/ javase / 7 / docs / api / java / awt / event / MouseEvent.html

vous pouvez obtenir l'emplacement absolu, à l'écran ou les coordonnées relatives au composant.

S'il y a un mouvement pour changer de direction, vous devrez supprimer le programme d'écoute de la souris ou vous pouvez simplement avoir une logique selon laquelle le gestionnaire d'événements va simplement quitter, sans rien faire. Je pense que ce serait mieux, sinon vous devez garder une trace du moment où vous ajoutez et supprimez les écouteurs.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top