我有一个简单的测试脚本,它的意思是当用户在按钮的维度内单击时更改布尔值,但它不起作用。
我是这样做的:
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按钮。
我很困惑如何才能让它正常工作。
发布于 2012-11-06 11:52:22
请尝试处理鼠标按键上的“单击”事件。我从未使用过SDL,但我怀疑已经定义了一个SDL_MOUSEBUTTONUP。否则,您不知道他们是想执行拖动操作,还是在松开鼠标按钮之前将鼠标移到其他地方。
https://stackoverflow.com/questions/13243777
复制相似问题