如何检测矩形物体、图像或精灵被点击的情况
- 2025-01-09 08:47:00
- admin 原创
- 77
问题描述:
我试图判断何时pygame.sprite.Group()
单击了某个精灵,该精灵必须是某个特定组 ( ) 的一部分。目前,我尝试创建一个精灵,它只是鼠标的位置,完全不可见,将其添加到自己的组中,并使用以下代码:
clickedList = pygame.sprite.spritecollide(guess1, mice, False)
guess1
被点击的精灵在哪里,以及mice
包含具有鼠标位置的精灵的组在哪里。
当我尝试此操作时,系统提示“Group 没有属性 rect”。我该怎么做?
解决方案 1:
如果你有一个精灵(my_sprite
)并且你想验证鼠标是否在精灵上,那么你必须获取对象.rect
的属性pygame.sprite.Sprite
并通过以下方式测试鼠标是否在矩形区域中.collidepoint()
:
mouse_pos = pygame.mouse.get_pos()
if my_sprite.rect.collidepoint(mouse_pos):
# [...]
中的 Spritepygame.sprite.Group
可以迭代。因此测试可以循环进行:
mouse_pos = pygame.mouse.get_pos()
for sprite in mice:
if sprite.rect.collidepoint(mouse_pos):
# [...]
或者获取 Group 中鼠标所在位置的 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]
# [...]
相关推荐
热门文章
项目管理软件有哪些?
热门标签
云禅道AD