簡體   English   中英

如何使用pygame事件循環讓pygame鼠標繼續返回事件

[英]How to make the pygame mouse continue to return events using the pygame event loop

我想知道如何做到這一點,以便當您按住 pygame 鼠標時,它會繼續在事件循環中獲取事件。
我不想使用 pygame.mouse.get_pressed() 因為我還想有一個不做任何事情的按住時間。
有點像如果您在瀏覽器的文本框中按住一個鍵:它鍵入一個鍵,然后等待大約半秒鍾,然后開始非常快速地鍵入很多鍵。
另外,我認為它在創建窗口時的主循環之前涉及一些東西,但我不確定。
我知道在 pygame 中有一種方法可以做到這一點,因為我之前看到過 Stack Overflow 的答案,但是經過一段時間的搜索,我找不到它。 如果您已經看過或可以找到它,那也將不勝感激。 這是我第一次問問題,所以如果我做錯了什么,請告訴我。
這是代碼:

import pygame

WIDTH = 1000
HEIGHT = 800
WIN = pygame.display.set_mode()

def main():
    run = True 
    clock = pygame.time.Clock()
    
    while run:
        clock.tick(60)
      
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                run = False
            if event.type == pygame.MOUSEBUTTONDOWN:
                print("the mouse was pressed")
        
        WIN.fill((0, 0, 0))

        pygame.display.update()

我想知道如何做到這一點,以便當您按住 pygame 鼠標時,它會繼續在事件循環中獲取事件。

喲不能。 但是,您可以使用pygame.mouse.get_pressed()

import pygame

WIDTH = 1000
HEIGHT = 800
WIN = pygame.display.set_mode()

def main():
    run = True 
    clock = pygame.time.Clock()
    
    while run:
        clock.tick(60)
      
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                run = False
  
        buttons = pygame.mouse.get_pressed() 
        if any(buttons):
            print("the mouse was pressed")

        WIN.fill((0, 0, 0))
        pygame.display.update()

MOUSEBUTTONDOWN事件在您單擊鼠標按鈕時發生一次,而MOUSEBUTTONUP事件在釋放鼠標按鈕時發生一次。
pygame.mouse.get_pressed()返回一個布爾值列表,代表所有鼠標按鈕的當前狀態( TrueFalse )。 只要按下按鈕,按鈕的狀態就是True

暫無
暫無

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

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