added a vanish animation for the knob labels
This commit is contained in:
2
knob.py
2
knob.py
@ -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):
|
||||||
|
|||||||
23
knobs.py
23
knobs.py
@ -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
|
||||||
|
|
||||||
|
if self.label_vanish_parameter == 0:
|
||||||
self.gui.screen.blit(label_fx_name, (label_x, label_y))
|
self.gui.screen.blit(label_fx_name, (label_x, label_y))
|
||||||
self.gui.screen.blit(label_fx_value, (label_x, self.gui.screenH / 2))
|
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:
|
||||||
|
|||||||
Reference in New Issue
Block a user