簡體   English   中英

pygame.mouse.get_pressed()報告未點擊鼠標時的點擊

[英]`pygame.mouse.get_pressed()` reports clicks when mouse is not clicked

我正在使用Python 2.7上的Pygame 1.9.2進行實驗。 在實驗中,我顯示圖像,並要求用戶根據圖像的特征單擊鼠標左鍵或鼠標右鍵(我會事先指示他們何時單擊內容)。 圖像一直顯示到用戶單擊為止,或者圖像顯示的時間超過固定的持續時間。

這是代碼段(希望此位足以了解正在執行的操作。)

pygame.display.update()
resp = None
while 1:
    dispEnd = time.time()
    pygame.mouse.set_visible(True)    
    pygame.event.get()
    ms = pygame.mouse.get_pressed()            
    if ms[0] or ms[2]:
        rt = dispEnd - dispSt                
        if ms[0]:
            resp = 'Yes'
        else:
            resp = 'No'
        break
    if dispEnd - dispSt >= changeDuration:
        break

這段代碼是一個較大的循環的一部分,在該循環中選擇並顯示了一個圖像,因此它運行了幾次。

在不可預測的時間發生的是該程序不等待用戶輸入。 在顯示圖像之后,它立即進入while循環並繼續進行,就像按下鼠標一樣。

這是一個隨機錯誤,隨時可能發生; 有時恰好在程序開始時,從循環的第一次運行開始; 因此,可能不是因為可能沒有清除事件隊列(在調用pygame.event.get() ),而且也不能默認使用鼠標的前一個單擊; 有時會在循環幾次迭代后發生。 無論哪種方式,對於實驗來說都是災難性的。

試試看:

...
while 1:
    dispEnd = time.time()
    for event in pygame.event.get():
        if event.type == pygame.MOUSEBUTTONDOWN: 
            #do something           
    ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM