我试图检测Sprite是否被鼠标悬停。但它无法正常工作,它永远不会检测到鼠标。
瓷砖代码:
#!/usr/bin/python
import pygame
class Tile(pygame.sprite.Sprite):
def __init__(self, img_sprite, init_position):
pygame.sprite.Sprite.__init__(self)
self.position=init_position
self.image=pygame.image.load(img_sprite)
self.rect = self.image.get_rect()
活动代码
for event in pygame.event.get():
for tile in tiles:
if tile.image.get_rect().collidepoint(pygame.mouse.get_pos()):
print 'tile hovered'
答案 0 :(得分:1)
您正在检查您的鼠标是否位于图像rect的矩形上方。由于image.get_rect()
返回的矩形始终采用(0,0,width,height)
形式,因此只有在您的磁贴位置为(0,0)时,您的检查才有效。
要解决此问题,您可以将位置保留在矩形中,或创建一个描述实际位置的新矩形。
您还可以过滤事件,并仅检查MOUSEMOTION
事件类型。