SDL鼠标按钮不一致
我有一个好奇的小问题使用SDL轮询鼠标事件。SDL鼠标按钮不一致
if(event.type == SDL_MOUSEBUTTONDOWN) { printf("click %d\n", event.button.button);
}
else if(event.type == SDL_MOUSEMOTION) {
printf("move %d\n", event.button.button);
}
如果我点击并按住鼠标右键,移动鼠标时,我得到:
click 3 // = SDL_BUTTON_RIGHT move 4 // != SDL_BUTTON_RIGHT !
move 4
...
即SDL_MOUSEBUTTONDOWN为鼠标右键设置button.button到3,而SDL_MOUSEMOTION是将其设置为4
有谁知道为什么会发生这种情况?
回答:
您应该为SDL_MOUSEMOTION
使用event.motion
,而不是event.button
。此外,event.motion.state
是一个位掩码,你应该用event.motion.state & SDL_BUTTON(3)
来查询它。
回答:
event.button.button用于点击事件而不是运动,我不明白这段代码的目的是什么?
以上是 SDL鼠标按钮不一致 的全部内容, 来源链接: utcz.com/qa/259213.html