0

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

我是这样接近它的:

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");
 }

问题是如果我点击任何地方然后点击等于真,那么如果鼠标是over退出按钮,即使在按钮上方没有按下按钮,它也会退出。

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

4

1 回答 1

1

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

于 2012-11-06T03:52:22.430 回答