我是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]中的精灵,程序应该打印它的颜色或它的位置。再次感谢:)
答案 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)
#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 中还有几个碰撞函数。参见: