• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

SDL鼠标按钮不一致

c/c++ 来源:user1483596 5次浏览

我有一个好奇的小问题使用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)来查询它。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)