簡體   English   中英

如何檢測何時單擊矩形 object、圖像或精靈

[英]How to detect when a rectangular object, image or sprite is clicked

我試圖判斷何時單擊必須屬於特定組( pygame.sprite.Group() )的精靈。 目前我已經嘗試創建一個精靈,它只是鼠標 position 並且完全不可見,將其添加到自己的組中,並使用以下代碼:

clickedList = pygame.sprite.spritecollide(guess1, mice, False)

其中guess1是被點擊的精靈, mice是包含具有鼠標position的精靈的組。

當我嘗試這個時,我被告知“組沒有屬性 rect”。 我在哪里 go 從這里?

如果您有一個精靈( my_sprite )並且您想驗證鼠標是否在精靈上,那么您必須獲取pygame.sprite.Sprite object 的.rect屬性並測試鼠標是否在矩形中.collidepoint()的面積:

mouse_pos = pygame.mouse.get_pos()
if my_sprite.rect.collidepoint(mouse_pos):
    # [...]

pygame.sprite.Group中的 Sprite 可以迭代。 所以測試可以循環進行:

mouse_pos = pygame.mouse.get_pos()
for sprite in mice:
    if sprite.rect.collidepoint(mouse_pos):
        # [...]

或者獲取組內的 Sprite 列表,鼠標所在的位置。 如果 Sprite 不重疊,則列表將包含 0 或 1 個元素:

mouse_pos = pygame.mouse.get_pos()
clicked_list = [sprite for sprite in mice if sprite.rect.collidepoint(mouse_pos)]

if any(clicked_list):
    clicked_sprite = clicked_list[0]
    # [...]

暫無
暫無

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

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