如何检测精灵是否在pygam中被点击

2024-04-28 02:54:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我是pygame的新手,现在我正在和精灵一起工作。我的问题是如何检测精灵是否已被点击?我想做一些事情时,精灵被点击就像一个按钮。

泰铢:)

[编辑]

斯蒂芬。另外,有没有办法知道被点击的精灵是谁?这是示例代码

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


Tags: 代码编辑示例forgrouplocation事情按钮
2条回答

我很久没有在Pygame中做任何事情了,但是IIRC的基本思想是你的精灵应该有一个描述它在屏幕上位置的rectattribute。当您收到鼠标单击事件时,您可以通过调用pygame.mouse.get_pos()get the position。然后,您可以通过在两个rect对象上调用rect,在以鼠标位置为中心的rect和您的精灵矩形之间check for a collision

一个很好的例子是here

更简单: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!'

RectSprite中还有多个碰撞函数。见:

相关问题 更多 >