我正在尝试使用onclick按钮打印支票并运行我的铅笔功能。目前,如果我将鼠标悬停在Box精灵上,它将运行打印和铅笔功能。它应该是ONCLICK它运行那些2.任何人都可以帮助我吗?谢谢! (这应该是所有相关的代码,如果您需要更多,请告诉我:)。
class Box(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.Surface((35, 30))
self.image = self.image.convert()
self.image.fill((255, 0, 0))
self.rect = self.image.get_rect()
self.rect.centerx = 25
self.rect.centery = 505
self.dx = 10
self.dy = 10
while keepGoing:
for event in pygame.event.get():
if event.type == pygame.QUIT:
keepGoing = False
box = Box()
allSprites = pygame.sprite.Group(box)
allSprites.draw(screen)
if event.type == MOUSEMOTION:
x,y = event.pos
if box.rect.collidepoint(x,y) and pygame.MOUSEBUTTONUP:
print("collide works")
pencil(background,clock,keepGoing,screen)
pygame.display.flip()
答案 0 :(得分:4)
您的代码不是检查鼠标点击,而是检查鼠标移动。
如果您要测试框中的点击次数,请更改条件以检查MOUSEBUTTONDOWN
或MOUSEBUTTONUP
事件(取决于您要对其进行响应的部分),而不是MOUSEMOTION
事件。
但您的代码还存在其他一些问题。例如,您在每次活动后都创建了Box和Group。可能你想在进入游戏循环之前创建它们一次(这将更有意义并且表现更好)。