added a vanish animation for the knob labels

This commit is contained in:
SallarShayegan
2025-03-02 18:24:08 +01:00
parent f0237bbb7e
commit 27ea7f2504
2 changed files with 24 additions and 5 deletions

View File

@ -29,7 +29,7 @@ class Knob:
else: else:
self.focused = False self.focused = False
self.color = color_primary self.color = color_primary
self.fade_count_down = 300 self.fade_count_down = 150
if not self.vanish_label_path: self.label_path = [] if not self.vanish_label_path: self.label_path = []
def get_position(self): def get_position(self):

View File

@ -39,21 +39,38 @@ class Knobs:
if i == 3 or i == 6: if i == 3 or i == 6:
x += self.knobs_radius + knobs_spacing x += self.knobs_radius + knobs_spacing
y = knobs_y y = knobs_y
self.label_vanish_parameter = 0
self.label_border_height = 0
def display_label(self, knob): def display_label(self, knob):
if not knob.vanish_label_path: self.label_vanish_parameter = 0
if len(knob.label_path) == 2:
if self.label_vanish_parameter > 0:
self.label_vanish_parameter -= 1
elif knob.vanish_label_path: self.label_vanish_parameter = 5
label_fx_name = font_helvetica.render(knob.name, False, color_primary_light) label_fx_name = font_helvetica.render(knob.name, False, color_primary_light)
label_fx_value = font_helvetica.render('[ ' + str(int(round(knob.value * 100, 0))) + '% ]', label_fx_value = font_helvetica.render('[ ' + str(int(round(knob.value * 100, 0))) + '% ]',
False, color_primary_light) False, color_primary_light)
min_x = self.knobs[5].get_position()[0] + self.knobs_radius * 1.5 min_x = self.knobs[5].get_position()[0] + self.knobs_radius * 1.5
label_x = min_x + (self.gui.screenW - min_x - label_fx_name.get_width()) / 2 label_x = min_x + (self.gui.screenW - min_x - label_fx_name.get_width()) / 2
label_y = (self.gui.screenH - label_fx_name.get_height() - label_fx_value.get_height()) / 2 label_y = (self.gui.screenH - label_fx_name.get_height() - label_fx_value.get_height()) / 2
self.gui.screen.blit(label_fx_name, (label_x, label_y))
self.gui.screen.blit(label_fx_value, (label_x, self.gui.screenH / 2)) if self.label_vanish_parameter == 0:
self.gui.screen.blit(label_fx_name, (label_x, label_y))
self.gui.screen.blit(label_fx_value, (label_x, self.gui.screenH / 2))
if knob.vanish_label_path:
if self.label_border_height < self.gui.screenH / 2:
self.label_border_height += 2
else: self.label_border_height = self.gui.screenH / 2
else:
self.label_border_height = label_y
pygame.draw.line( pygame.draw.line(
self.gui.screen, self.gui.screen,
color_primary_dark, color_primary_dark,
(label_x - 10, label_y), (label_x - 10, self.label_border_height),
(label_x - 10, self.gui.screenH - label_y), (label_x - 10, self.gui.screenH - self.label_border_height),
2 2
) )
@ -115,6 +132,8 @@ class Knobs:
def set_focused(self, knob): def set_focused(self, knob):
for k in self.knobs: for k in self.knobs:
k.set_focused(k == knob) k.set_focused(k == knob)
if knob is None:
k.vanish_label_path = False
def display(self): def display(self):
for knob in self.knobs: for knob in self.knobs: