SDL_events.h

Estructura SDL_MouseMotionEvent

Una estructura que contiene información de eventos de movimiento del ratón.

typedef struct SDL_MouseMotionEvent
{
    Uint32 type;        /**< ::SDL_MOUSEMOTION */
    Uint32 timestamp;   /**< In milliseconds, populated using SDL_GetTicks() */
    Uint32 windowID;    /**< The window with mouse focus, if any */
    Uint32 which;       /**< The mouse instance id, or SDL_TOUCH_MOUSEID */
    Uint32 state;       /**< The current button state */
    Sint32 x;           /**< X coordinate, relative to window */
    Sint32 y;           /**< Y coordinate, relative to window */
    Sint32 xrel;        /**< The relative motion in the X direction */
    Sint32 yrel;        /**< The relative motion in the Y direction */
} SDL_MouseMotionEvent;

Miembros

type
SDL_MOUSEMOTION
timestamp
Marca de tiempo en milisegundos.
windowID
La ventana con el foco del teclado, si hay alguna.
which
El id de instancia del ratón, o SDL_TOUCH_MOUSEID, ver observaciones.
state
El estado del botón, ver observaciones.
x
Coordenada X, relativa a la ventana.
y
Coordenada Y, relativa a la ventana.
xrel
Movimiento relativo en el eje x.
yrel
Movimiento relativo en el eje y.

Observaciones

SDL_MouseMotionEvent es un miembro de la unión SDL_Event y se utiliza cuando se reporta un evento de tipo SDL_MOUSEMOTION. Se accede a él a través del campo motion del evento.

Un evento SDL_MOUSEMOTION ocurre siempre que un usuario mueve el ratón dentro de la ventana de la aplicación o cuando se llama a SDL_WarpMouseInWindow().

state es una máscara de bits de 32 bits del estado actual del botón y es la misma que devuelve SDL_GetMouseState(). Se pueden comprobar probar diferentes botones usando las siguientes máscaras:

  • SDL_BUTTON_LMASK
  • SDL_BUTTON_MMASK
  • SDL_BUTTON_RMASK
  • SDL_BUTTON_X1MASK
  • SDL_BUTTON_X2MASK

which puede ser SDL_TOUCH_MOUSEID, para eventos que fueron generados por un dispositivo de entrada táctil, y no un ratón real. Es posible que desee ignorar este tipo de eventos, si su aplicación ya maneja SDL_TouchFingerEvent.

El movimiento relativo se almacena en xrel e yrel y es relativo al último evento de movimiento. Si el modo relativo del ratón está habilitado con SDL_SetRelativeMouseMode(), entonces el ratón dará eventos de movimiento relativo incluso cuando el cursor alcance el borde de la pantalla.