2012-11-06 69 views
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退出按鈕退出,即使沒有按下按鈕時,任何地方然後單擊等於true,則在按鈕上方。

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

回答

1

嘗試在鼠標按鈕上處理您的「單擊」事件。我從來沒有使用SDL,但我懷疑有一個SDL_MOUSEBUTTONUP定義。否則,你不知道他們是否想要執行拖動操作,或者如果他們在放開鼠標按鈕之前將鼠標移動到其他位置。

+0

我會把它放在「IsIn」if語句中嗎? – Sir

相關問題