如何检测单击矩形对象、图像或精灵的时间

2024-04-19 23:32:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图告诉你什么时候点击一个精灵,它必须是一个特定组(pygame.sprite.Group())的一部分。目前,我尝试创建一个精灵,它只是鼠标位置,完全不可见,将其添加到自己的组中,并使用以下代码:

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

其中guess1是点击的精灵,而mice是包含具有鼠标位置的精灵的组

当我尝试这个方法时,我被告知“组没有属性rect”。我该怎么办


Tags: 方法代码rectfalse属性group鼠标pygame
1条回答
网友
1楼 · 发布于 2024-04-19 23:32:39

如果您有一个精灵(my_sprite),并且您想验证鼠标是否在精灵上,那么您必须获取^{}对象的.rect属性,并通过.collidepoint()测试鼠标是否在矩形区域中:

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

a^{}中的精灵可以迭代。因此,可以在循环中进行测试:

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

或者获取组中鼠标所在位置的精灵列表。如果精灵不重叠,则列表将包含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]
    # [...]

相关问题 更多 >