在 Pygame 應用程式中使用 sprite 時,有必要偵測使用者何時點選特定 sprite。本文解決了偵測精靈群組內點擊的問題,特別強調了「AttributeError:群組沒有屬性矩形」錯誤。
目標是確定使用者何時點擊屬於名為guess1 的特定群組的精靈。為了實現這一點,創建了一個代表滑鼠遊標位置的精靈,並將其添加到它自己的群組「小鼠」中。然後,該精靈用於與小鼠組內的guess1進行碰撞檢測。
但是,嘗試此方法會導致錯誤「群組沒有屬性矩形」。出現此錯誤的原因是 spritecollide() 函數需要兩個精靈上的 rect 屬性來進行碰撞偵測。小鼠組本身沒有 rect 屬性,因此會出現錯誤。
要解決此問題,我們可以迭代小鼠組中的精靈並檢查滑鼠點擊情況每個精靈的矩形屬性:
<code class="python">import pygame # Get the mouse cursor position mouse_pos = pygame.mouse.get_pos() # Loop through the sprites in the mice group for sprite in mice: # Check if the mouse cursor is within the sprite's rect if sprite.rect.collidepoint(mouse_pos): # Handle the click event on the sprite # ...</code>
或者,您可以直接測試特定精靈上的點擊:
<code class="python">if guess1.rect.collidepoint(mouse_pos): # Handle the click event on guess1 # ...</code>
透過使用此方法,您可以偵測精靈何時位於群組已被點擊,當使用者與這些精靈互動時,可以實現所需的操作。
以上是如何偵測精靈群組中的點選物件並解決「AttributeError:群組沒有屬性矩形」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!