Python 如何检测精灵是否在pygame中被点击
我是pygame的新手,现在我和精灵一起工作。我的问题是如何检测精灵是否被点击?当精灵像按钮一样被点击时,我想做点什么 thx:) [已编辑] 斯蒂芬。另外,有没有办法知道谁是被点击的精灵?下面是示例代码Python 如何检测精灵是否在pygame中被点击,python,sprite,pygame,Python,Sprite,Pygame,我是pygame的新手,现在我和精灵一起工作。我的问题是如何检测精灵是否被点击?当精灵像按钮一样被点击时,我想做点什么 thx:) [已编辑] 斯蒂芬。另外,有没有办法知道谁是被点击的精灵?下面是示例代码 boxes = pygame.sprite.Group() for color, location in [([255, 0, 0], [0, 0]), ([0, 255, 0], [60, 60]),
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]中的精灵,程序应打印其颜色或位置。再次感谢:)我很久没有在Pygame中做任何事情了,但IIRC的基本思想是,您的精灵应该有一个描述其在屏幕上位置的
rect
。当您收到鼠标单击事件时,您可以通过调用pygame.mouse.get\u pos()
来执行此操作。然后,通过在两个rect
对象上调用pygame.sprite.collide_rect()
,可以在鼠标位置居中的rect
和精灵的rect之间切换
可以找到一个很好的例子。更简单:
主回路
Rect和Sprite中还有几个碰撞函数。见:
#in event handling:
if event.type == MOUSEMOTION: x,y = event.pos
for box in boxes:
if box.rect.collidepoint(x,y): print 'yay!'