Pygame 鼠标点击检测
在 Pygame 中,检测精灵上的鼠标点击需要在主循环期间进行手动检查。以下是实现此功能的方法:
主循环方法:
示例代码:
while ...: ev = pygame.event.get() for event in ev: if event.type == pygame.MOUSEBUTTONUP: pos = pygame.mouse.get_pos() clicked_sprites = [s for s in sprites if s.rect.collidepoint(pos)] # Perform action on clicked sprites
注意:Pygame 不为此场景提供事件驱动编程。
替代方案方法:
虽然不太理想,但您还可以检查鼠标光标位置和按键状态。但是,这种方法需要额外的标志处理以防止连续打印:
handled = False while ...: if pygame.mouse.get_pressed()[0] and mysprite.rect.collidepoint(pygame.mouse.get_pos()) and not handled: print("You have opened a chest!") handled = pygame.mouse.get_pressed()[0]
Sprite 类方法:
您还可以在自定义 MySprite 类中定义一个方法来检查鼠标点击:
class MySprite(Sprite): def is_clicked(self): return pygame.mouse.get_pressed()[0] and self.rect.collidepoint(pygame.mouse.get_pos())
以上是如何在 Pygame 中检测鼠标对精灵的点击?的详细内容。更多信息请关注PHP中文网其他相关文章!