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

时间:2011-06-15 11:14:55

标签: python sprite pygame

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

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

2 个答案:

答案 0 :(得分:6)

我在Pygame做了很长时间,但是IIRC的基本想法是你的精灵应该有一个rect attribute来描述它在屏幕上的位置。当您收到鼠标点击事件时,请致电pygame.mouse.get_pos() get the position。然后,您可以通过在rect个对象上调用pygame.sprite.collide_rect(),在以鼠标位置为中心的rect和精灵的矩形之间check for a collision

可以找到一个很好的例子here

答案 1 :(得分:1)

更简单: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 中还有几个碰撞函数。参见: