Travaillant sur un jeu ici et j'ai jusqu'à présent fait un système de menu pour mon jeu. J'ai ajouté trois boutons différents. J'ai tout réglé sauf une chose. Donc, j'utilise une méthode normale si croise pour voir si la souris et le rectangle du bouton entrent en collision pour jouer un effet sonore. Cependant, je ne sais pas comment arrêter ce son et il se boucle tout le temps, jusqu'à ce que je supprime la souris du bouton. Je veux faire en sorte qu'il ne joue qu'une seule fois.XNA 2D effet sonore souris planant
public void Update(MouseState mouse, GraphicsDevice graphics, SoundEffect soundEffect)
{
rectangle = new Rectangle((int)position.X, (int)position.Y, (int)size.X, (int)size.Y);
Rectangle mouseRectangle = new Rectangle(mouse.X, mouse.Y, 1, 1);
if(mouseRectangle.Intersects(rectangle))
{
if (mouse.LeftButton == ButtonState.Pressed) isClicked = true;
size = new Vector2(graphics.Viewport.Width/9, graphics.Viewport.Height/13);
soundEffect.Play();
}
else
{
size = new Vector2(graphics.Viewport.Width/10, graphics.Viewport.Height/14);
isClicked = false;
}
Toute aide serait appréciée.
BTW: Ce n'est pas nécessaire, mais j'ai un autre "problème" lorsque je passe la souris sur les boutons, ils grossissent ce qui est prévu. Mais ça ne grossit pas du centre. C'est un peu difficile à expliquer mais il grossit en position x et y, pas -x et -y. Il a la même position.
Je pense que les sons ont une propriété booléenne '.looping'. Essayez de le définir sur false. – user1306322
En ce qui concerne les boutons, lorsque le curseur les croise d'abord, changez également leur position de la moitié de la différence de taille en haut à gauche. Comme 'button.position - = new Vector2 (diff/2, diff/2)' et ensuite faire le contraire en quittant le bouton. – user1306322