2011-06-15 125 views
5

pygame中的新功能,现在我正在使用精灵。我的问题是我如何检测精灵是否被点击?当点击精灵时,我想做点什么,就像一个按钮。如何检测pygame中的精灵是否被点击

THX :)

将帖子

THX斯蒂芬。另外还有一种方法可以知道被点击的精灵是谁?这里是示例代码

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]的精灵,程序应该打印它的颜色或其位置。再次感谢:)

回答

6

自从我在Pygame做了任何事情已经很长时间了,但是IIRC的基本思想是你的精灵应该有一个描述它在屏幕上的位置的rectattribute。当您收到鼠标点击事件时,您致电pygame.mouse.get_pos()get the position。然后在rect对象上调用pygame.sprite.collide_rect(),然后您可以在以鼠标位置为中心的rect和精灵的直角之间check for a collision

一个很好的例子可以发现here