微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

|| 我是pygame的新手,现在我正在使用精灵。我的问题是如何检测是否已单击精灵?我想像单击按钮一样在单击精灵时执行某些操作。 谢谢 :) [编辑] 斯蒂芬。此外,还有一种方法可以知道单击的精灵是谁?这是示例代码
Boxes = pygame.sprite.Group()
for color,location in [([255,0],[0,0]),([0,255,[60,60]),255],[120,120])]:
    Boxes.add(updownBox(color,location)
例如,我单击[0,0]位置上的精灵,程序应打印其颜色或位置。再次感谢 :)     

解决方法

        自从我在Pygame中进行任何操作以来已经很长时间了,但是IIRC的基本思想是您的子画面应具有describes1ѭ属性,以描述其在屏幕上的位置。当您收到鼠标单击事件时,您可以通过调用
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!\'
Rect和Sprite中还有更多的碰撞函数。看到: http://www.pygame.org/docs/ref/sprite.html#pygame.sprite.spritecollide http://www.pygame.org/docs/ref/sprite.html http://www.pygame.org/docs/ref/rect.html     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。