因此,我目前正在爲我的遊戲設計一個選項菜單,我有一個按鈕,當它按下時它將文本更改爲數組中的下一個分辨率,所以基本上用戶按下此按鈕來更改它們解析數組中的下一個字符串。SDL鼠標點擊
我的問題是獲取點擊事件。
現在,當用戶按下按鈕時,它將在鼠標關閉時返回true,而不是按下鼠標時返回true。我只想在鼠標按下時在鼠標事件中返回true。
我環顧四周,我發現的一切似乎都與我所做的相似,或者如我所說的,在鼠標關閉時返回true,而不是初始點擊。
我的活動都在eventmanager進行單處理,這裏是我看到的必要功能:
我的更新功能,這就是該事件被調查,值得注意的是我使用的是私有名爲「e」的SDL_Event。
void EventManager::update(){
while(SDL_PollEvent(&e)){
SDL_GetMouseState(&mouseX, &mouseY);
switch(e.type){
case SDL_QUIT:
running = false;
}
}
}
我的鼠標按鈕功能,我想要一個鼠標按下返回。
int EventManager::mousePress(){
if(e.type == SDL_MOUSEBUTTONDOWN){
return e.button.button;
}
return 0;
}
當你得到一個MOUSEBUTTONDOWN事件時,你可以設置一個布爾標誌,並且當你得到一個MOUSEBUTTONUP時清除它? –
'(SDL_GetMouseState(&mouseX,&mouseY)&SDL_BUTTON(SDL_BUTTON_LEFT))'爲鼠標按下(左鍵單擊)? – share
特里斯坦斑紋,這不會改變一件事,當e.type!= SDL_MOUSEBUTTONDOWN 0被返回,這意味着當鼠標左鍵被按住時,它將繼續返回true。正如我所說的,我希望它只在最初按下鼠標按鈕時才返回true。道歉,如果這在我的問題不夠清楚。 – genfy