我有一个简单的测试脚本,当用户点击按钮的尺寸但它不起作用时,它意味着更改布尔值。
我这样接近它:
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
退出按钮它退出,即使按钮没有按下按钮时也是如此。
我很困惑如何让它正常工作。
答案 0 :(得分:1)
尝试在鼠标按钮上处理“点击”事件。我从未使用过SDL,但我怀疑定义了SDL_MOUSEBUTTONUP
。否则你不知道他们是否想要执行拖动操作,或者他们是否在放开鼠标按钮之前将鼠标移动到其他位置。