所以我一直在制作一个基本的pygame程序,它有一些按钮和背景,在设置系统时,当鼠标悬停在上面时,按钮会稍微变暗,单击时会变暗,我遇到了这个问题,每次单击按钮,按钮都会变暗,这是应该的,但在释放时,在返回到悬停灯光级别之前,该按钮将返回到全亮度,仅持续一两帧
class button:
def __init__(self, action, actionParam, buttonPic, x, y, w, h):
self.action = action
self.actionParam = actionParam
self.bx = int(uiX + (x * uiW))
self.by = int(uiY + (y * uiH))
self.bw = int(w * uiW)
self.bh = int(h * uiH)
self.buttonPic = pygame.transform.scale(buttonPic, (self.bw, self.bh))
self.over = pygame.Surface((self.bw, self.bh))
self.over.fill((0,0,0))
def draw_button(self):
if window.blit(self.buttonPic, (self.bx, self.by)).collidepoint(mouse):
self.over.set_alpha(50)
if click[0]:
self.over.set_alpha(100)
else: self.over.set_alpha(0)
window.blit(self.buttonPic, (self.bx, self.by))
window.blit(self.over, (self.bx, self.by))
def click_button(self):
if window.blit(self.buttonPic, (self.bx, self.by)).collidepoint(mouse):
self.action(self.actionParam)
当我将鼠标悬停在按钮上时,它也不会对颜色变暗做出反应,而在我的互联网浏览器上,当我将鼠标悬停在按钮上时,它会做出反应
注意,我在collidepoint线中使用的“mouse”定义为pygame.mouse.get_pos(),每次在绘制按钮之前运行主循环 “点击”是pygame.mouse.get_pressed()
目前没有回答
相关问题 更多 >
编程相关推荐