En XNA puede usar el Mouse class para consultar la entrada del usuario.
La manera más fácil de hacerlo es verificar el estado del mouse para cada fotograma y reaccionar en consecuencia. ¿La posición del mouse está dentro de un área determinada? Mostrar un cursor diferente ¿Se presiona el botón derecho durante este cuadro? Muestra un menú. etc.
var mouseState = Mouse.GetState();
Obtener la posición del ratón en coordenadas de pantalla (en relación con la esquina superior izquierda):
var mousePosition = new Point(mouseState.X, mouseState.Y);
Cambiar una textura cuando el ratón está dentro de un área determinada:
Rectangle area = someRectangle;
// Check if the mouse position is inside the rectangle
if (area.Contains(mousePosition))
{
backgroundTexture = hoverTexture;
}
else
{
backgroundTexture = defaultTexture;
}
Haga algo mientras se hace clic con el botón izquierdo del mouse:
if (mouseState.LeftButton == ButtonState.Pressed)
{
// Do cool stuff here
}
Recuerde que siempre tendrá información del marco actual. Por lo tanto, aunque pueda pasar algo bueno durante el tiempo en que se presiona el botón, se detendrá tan pronto como se libere.
para comprobar si hay un solo clic usted tendría que almacenar el estado del ratón sobre el último cuadro y comparar lo que ha cambiado:
// The active state from the last frame is now old
lastMouseState = currentMouseState;
// Get the mouse state relevant for this frame
currentMouseState = Mouse.GetState();
// Recognize a single click of the left mouse button
if (lastMouseState.LeftButton == ButtonState.Released && currentMouseState.LeftButton == ButtonState.Pressed)
{
// React to the click
// ...
clickOccurred = true;
}
Usted podría hacerlo aún más avanzada y trabajar con eventos. De modo que seguiría utilizando los fragmentos desde arriba, pero en lugar de incluir directamente el código para la acción, activaría eventos: MouseIn, MouseOver, MouseOut. ButtonPush, buttonPressed, ButtonRelease, etc.
Esto pertenece en http : //gamedev.stackexchange.com/ – RQDQ