仅在单击按钮时检查事件

时间:2012-11-06 03:09:20

标签: c++ sdl

我有一个简单的测试脚本,当用户点击按钮的尺寸但它不起作用时,它意味着更改布尔值。

我这样接近它:

while( SDL_PollEvent( &event ) ) {
        switch( event.type ){
            case SDL_QUIT: quit = true; break;
            case SDL_MOUSEMOTION: mouseX = event.motion.x; mouseY = event.motion.y; break;    
            case SDL_MOUSEBUTTONDOWN: click = true; 
        }
}
 Button btn_settings(btn_x,btn_y);
 if(btn_settings.IsIn(mouseX,mouseY)){
    btn_settings.RenderImg(menu,screen,"button_on.png","Settings");

    if(click){
        quit = true;
    }

 } else {
    btn_settings.RenderImg(menu,screen,"button.png","Settings");
 }

问题是,如果我单击任何位置然后单击等于true,那么如果鼠标是over退出按钮它退出,即使按钮没有按下按钮时也是如此。

我很困惑如何让它正常工作。

1 个答案:

答案 0 :(得分:1)

尝试在鼠标按钮上处理“点击”事件。我从未使用过SDL,但我怀疑定义了SDL_MOUSEBUTTONUP。否则你不知道他们是否想要执行拖动操作,或者他们是否在放开鼠标按钮之前将鼠标移动到其他位置。