python - 如何检测 Sprite 是否已在pygame中被点击

标签 python sprite pygame

我是 pygame 的新手,现在正在使用 Sprite 。我的问题是如何检测 Sprite 是否被点击?当 Sprite 像按钮一样被点击时,我想做一些事情。

谢谢:)

[已编辑]

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

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

最佳答案

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

可以找到一个很好的例子here .

关于python - 如何检测 Sprite 是否已在pygame中被点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6356840/

相关文章:

python - 运行Python子进程直到不再发生错误?

python - 在模块中调用导入

c# - 如何在 Unity 中更改 Sprite uv?

jquery - 使用easing1.3.js弹跳 Sprite 图标

python - pygame - 更新得分框

python - 命令 screen.fill() 不会重置屏幕上的对象

python:如何告诉 socket.gethostbyaddr() 使用哪个 dns 服务器

Python、Numpy 和 OLS

python - Python 中的套接字问题

jquery - Spritely - 单击时向前和向后播放 CSS Sprite