包含鼠标移动信息的结构体

Data Fields

Uint32

type

事件类型; SDL_MOUSEMOTION

Uint32

windowID

键盘焦点的窗口(如果有的话)

Uint8

state

按键的状态; SDL_PRESSED 或者 SDL_RELEASED,详见讨论

int

x

X 坐标, 相对于窗口

int

y

Y 坐标, 相对于窗口

int

xrel

X方向的相对移动

int

yrel

Y方向的相对移动

 

代码示例

-

讨论

SDL_MouseMotionEventSDL_Event联合体的一个成员,当 SDL_MOUSEMOTION事件被报告时,这个结构体会被使用。你可以使用SDL_Event的 motion 域来访问它。

当用户在应用程序窗口内移动鼠标或者当SDL_WarpMouseInWindow()函数被调用时,这个事件会被触发。

state 是当前按钮状态的8比特掩码(bitmask),这个值与SDL_GetMouseState()的返回值相同。你可以使用以下掩码来检测不同的按钮(梦维:判断按下的是哪个按钮):

SDL_BUTTON_LMASK

SDL_BUTTON_MMASK

SDL_BUTTON_RMASK

SDL_BUTTON_X1MASK

SDL_BUTTON_X2MASK

相对移动存储在xrelyrel 成员中,该值相对于上一次的鼠标移动位置。如果使用SDL_SetRelativeMouseMode()函数开启了相对鼠标模式,则即使鼠标碰撞到了屏幕的边缘,相对移动依旧会被SDL报告出来。(梦维:当鼠标碰撞了屏幕边缘时,相对移动实际上值为0)

 

相关枚举值

SDL_EventType

相关结构体

相关函数

英文原稿:SDL_MouseMotionEvent

评论模块尚未加载