如何检测精灵中是否已单击精灵


问题内容

我是pygame的新手,现在我正在使用精灵。我的问题是如何检测是否已单击精灵?我想像单击按钮一样,在单击精灵时做一些事情。

谢谢 :)

[编辑]

斯蒂芬。此外,还有一种方法可以知道单击的精灵是谁?这是示例代码

boxes = pygame.sprite.Group()
for color, location in [([255, 0, 0], [0, 0]),
                        ([0, 255, 0], [60, 60]),
                        ([0, 0, 255], [120, 120])]:
    boxes.add(UpDownBox(color, location)

例如,我单击位置[0,0]上的精灵,程序应打印其颜色或位置。再次感谢 :)


问题答案:

自从我在Pygame中进行任何操作以来已经有很长时间了,但是IIRC的基本思想是您的Sprite应该具有描述其在屏幕上位置的rect
属性。收到鼠标单击事件时,您可以通过调用来获得位置pygame.mouse.get_pos()。然后您可以rect通过调用pygame.sprite.collide_rect()两个rect对象来检查以鼠标位置为中心的精灵与精灵的矩形之间是否存在碰撞

一个很好的例子可以在这里找到。