首页 > 解决方案 > python中的按钮功能不起作用self.clicked

问题描述

一直在写一个按钮功能但是self.clicked在之后没有保持它的价值MOUSEBUTTONUP,有没有更好的方法或方法来保持self.clicked价值?

代码:

def check_clicked(self,event):
    if event.type == pg.MOUSEBUTTONDOWN and event.button == 1:
            if self.rect.collidepoint(event.pos):
                self.clicked = True
    elif event.type == pg.MOUSEBUTTONUP:
            if self.clicked == True:
                return True
            else:
                return False

标签: pythonpygame

解决方案


您的缩进已关闭,尽管这应该会引发错误;

def check_clicked(self,event):
if event.type == pg.MOUSEBUTTONDOWN and event.button == 1:
        if self.rect.collidepoint(event.pos):
            self.clicked = True
elif event.type == pg.MOUSEBUTTONUP: #<<<<< Change indentation here
        if self.clicked == True:
            return True
        else:
            return False

假设您的缩进是正确的,我相信问题在于您实际上并没有定义self.clicked,只是检查它是否正确。

尝试以下操作;

elif event.type == pg.MOUSEBUTTONUP:
    self.clicked = True
    if self.clicked == True:
        return True
    else:
        return False

self.clicked尽管在定义之前检查是否为真是多余的。只需使用;

def check_clicked(self,event):
if event.type == pg.MOUSEBUTTONDOWN and event.button == 1:
        if self.rect.collidepoint(event.pos):
            self.clicked = True
elif event.type == pg.MOUSEBUTTONUP:
        self.clicked = True
        return True

推荐阅读