如何检测是否在pygame中单击了精灵

问题描述

|| 我是pygame的新手,现在我正在使用精灵。我的问题是如何检测是否已单击精灵?我想像单击按钮一样在单击精灵时执行某些操作。 谢谢 :) [编辑] 斯蒂芬。此外,还有一种方法可以知道单击的精灵是谁?这是示例代码
Boxes = pygame.sprite.Group()
for color,location in [([255,0],[0,0]),([0,255,[60,60]),255],[120,120])]:
    Boxes.add(updownBox(color,location)
例如,我单击[0,0]位置上的精灵,程序应打印其颜色或位置。再次感谢 :)     

解决方法

        自从我在Pygame中进行任何操作以来已经很长时间了,但是IIRC的基本思想是您的子画面应具有describes1ѭ属性,以描述其在屏幕上的位置。当您收到鼠标单击事件时,您可以通过调用
pygame.mouse.get_pos()
获得位置。然后,您可以通过在两个
rect
对象上调用
pygame.sprite.collide_rect()
,来检查以鼠标位置为中心的
rect
与精灵的矩形之间是否存在冲突。 一个很好的例子可以在这里找到。     ,        更简单:Rect.collidepoint(x,y) 主循环
#in event handling:
if event.type == MOUSEMOTION: x,y = event.pos

for box in boxes:
    if box.rect.collidepoint(x,y): print \'yay!\'
Rect和Sprite中还有更多的碰撞函数。看到: http://www.pygame.org/docs/ref/sprite.html#pygame.sprite.spritecollide http://www.pygame.org/docs/ref/sprite.html http://www.pygame.org/docs/ref/rect.html