![](/img/trans.png)
[英]How do I make a rectangular sprite stop when it collides with another rectangular sprite using pygame?
[英]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.