2D XNA game souris en cliquant sur
J'ai un jeu en 2D dans lequel j'utilise uniquement la souris à l'entrée.
Comment puis-je faire pour que mon lorsque la souris survole un Texture2D objet, le Texture2D et le curseur de la souris changer, et lorsque la texture est cliqué, il se déplace à un autre endroit.
Tout simplement, je veux savoir comment faire quelque chose quand je survolez ou cliquez sur une Texture2D.
Ça, c'est sur gamedev.stackexchange.com
OriginalL'auteur Ahmed Hegazy | 2012-03-15
Vous devez vous connecter pour publier un commentaire.
Dans XNA, vous pouvez utiliser le Souris de classe à la requête de la saisie de l'utilisateur.
La façon la plus simple de le faire est de vérifier l'état de la souris pour chaque image et de réagir en conséquence. Est la position de la souris à l'intérieur d'un certain domaine? Afficher un curseur différent. Est le bouton droit enfoncé pendant cette image? Pour afficher un menu. etc.
Obtenir la position de la souris en coordonnées écran (par rapport au coin en haut à gauche):
Changer une texture lorsque la souris est à l'intérieur d'un certain domaine:
Faire quelque chose pendant le bouton gauche de la souris est cliqué:
Rappelez-vous bien que vous aurez toujours de l'information de la actuel cadre. Ainsi, alors que quelque chose de cool qui peut arriver pendant le temps que le bouton est cliqué, il s'arrête dès que publié.
Pour vérifier un seul clic vous avez à stocker l'état de la souris de la dernière image et de comparer ce qui a changé:
Vous pourriez faire encore plus avancé et le travail avec les événements. Donc vous devez toujours utiliser les extraits de code à partir de ci-dessus, mais au lieu de l'intégrer directement dans le code de l'action serait de déclencher des événements: MouseIn, MouseOver, MouseOut. ButtonPush, ButtonPressed, ButtonRelease, etc.
mais comment puis-je associer le clic avec la texture dans n'importe quelle position. quand j'ai quitté cliqué dans n'importe quelle position non un rectangle!
Le Texture2D classe n'a pas une fonctionnalité intégrée pour la réception de l'entrée et c'est bon. Donc, vous aurez toujours à définir une zone active et de l'associer avec une texture ou d'autres objets. Si vous avez plus de rectangles simple boucle à travers eux et de vérifier les uns avec les méthodes ci-dessus.
Ne ce qui se passe entre les mises à jour fonctionnent encore?
OriginalL'auteur Lucius
Je voudrais juste ajouter que la Souris Cliquez sur le code peut être simplifié, de sorte que vous n'avez pas à faire une variable:
OriginalL'auteur Vilhelm