我是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的精灵,程序应该打印它的颜色或位置。再次感谢:)
发布于 2011-06-15 17:38:30
我已经很久没有在Pygame中做任何事情了,但是IIRC基本的想法是你的精灵应该有一个rect
attribute来描述它在屏幕上的位置。当您收到鼠标单击事件时,您可以通过调用pygame.mouse.get_pos()
来执行get the position。然后,通过在两个rect
对象上调用pygame.sprite.collide_rect()
,可以在以鼠标位置为中心的rect
和sprite的rect之间进行check for a collision。
here就是一个很好的例子。
发布于 2011-09-22 04:10:46
主循环
#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中还有几个更多的碰撞函数。请参见:
https://stackoverflow.com/questions/6356840
复制