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

回到顶部