簡體   English   中英

Pygame按鈕在按下時/僅在懸停時不起作用

[英]Pygame button won't work on press/only on hover

我試圖讓一個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()

您的代碼不是檢查鼠標單擊,而是檢查鼠標移動。

如果要測試單擊框的情況,請更改條件以檢查MOUSEBUTTONDOWNMOUSEBUTTONUP事件(取決於您要對單擊作出反應的哪一部分),而不是MOUSEMOTION事件。

但是,您的代碼還有其他問題。 例如,您在每個事件之后創建Box和Group。 可能您只想創建一次它們,然后進入游戲循環(這將更有意義,並且性能會更好)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM