繁体   English   中英

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

[英]how to detect if the sprite has been clicked in pygame

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

自从我在Pygame中做了很多事以来已经很久了,但是IIRC的基本思想是你的精灵应该有一个rect 属性来描述它在屏幕上的位置。 当您收到鼠标单击事件时,您可以通过调用pygame.mouse.get_pos() 获得该位置 然后,您可以检查是否有碰撞之间rect通过拨打鼠标位置为中心,你的精灵的矩形pygame.sprite.collide_rect()两个rect对象。

这里可以找到一个很好的例子。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM