偵測 Sprite 點擊事件
Pygame 是個受歡迎的 Python 2D 遊戲開發函式庫。它提供了一種創建和管理精靈的便捷方法,精靈是可以移動和相互互動的圖形物件。遊戲開發中的常見任務是確定何時點擊精靈。
問題
開發人員正在嘗試偵測屬於特定群組的精靈(按一下 pygame.sprite.Group())。他們創建了一個代表滑鼠位置的精靈,並使用 spritecollide() 來測試滑鼠和精靈之間的碰撞。但是,他們收到一條錯誤訊息,指出「Group has no attribute rect」。
解
問題源自於以下事實:群組不具有 rect 屬性。要確定精靈上是否發生了滑鼠單擊,程式碼應該訪問被單擊的單一精靈的 rect 屬性。以下程式碼片段示範如何執行此操作:
<code class="python">mouse_pos = pygame.mouse.get_pos() for sprite in sprites: if sprite.rect.collidepoint(mouse_pos): # Sprite clicked</code>
此程式碼迭代組中的精靈,並檢查滑鼠位置是否與精靈的 rect 屬性發生碰撞。如果偵測到碰撞,則按一下精靈。
或者,您可以使用以下清單理解來取得點擊的精靈清單:
<code class="python">mouse_pos = pygame.mouse.get_pos() clicked_sprites = [sprite for sprite in sprites if sprite.rect.collidepoint(mouse_pos)] if clicked_sprites: # One or more sprites clicked</code>
透過使用的rect 屬性單一精靈,程式碼可以準確偵測何時點擊精靈並繼續執行所需的操作。
以上是如何在 Pygame 中偵測 Sprite 點擊事件:為什麼「Group 沒有屬性 rect」以及如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!