Python鼠标在图像上不起作用

时间:2014-02-08 15:41:12

标签: python pygame

我试图检测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'

1 个答案:

答案 0 :(得分:1)

您正在检查您的鼠标是否位于图像rect的矩形上方。由于image.get_rect()返回的矩形始终采用(0,0,width,height)形式,因此只有在您的磁贴位置为(0,0)时,您的检查才有效。

要解决此问题,您可以将位置保留在矩形中,或创建一个描述实际位置的新矩形。

您还可以过滤事件,并仅检查MOUSEMOTION事件类型。