Compare commits

..

3 Commits

2 changed files with 38 additions and 18 deletions

View File

@ -37,6 +37,9 @@ class Knob:
def get_position(self): def get_position(self):
return self.position return self.position
def get_index(self, knobs):
return knobs.index(self)
def __eq__(self, other): def __eq__(self, other):
if other is None: return False if other is None: return False

View File

@ -6,7 +6,7 @@ import random
class Knobs: class Knobs:
def __init__(self, gui): def __init__(self, gui, is_left_side=True):
self.gui = gui self.gui = gui
self.knobs_surface = pygame.Surface((gui.screenW, gui.screenH), pygame.SRCALPHA) self.knobs_surface = pygame.Surface((gui.screenW, gui.screenH), pygame.SRCALPHA)
@ -16,6 +16,8 @@ class Knobs:
self.fade_in = False self.fade_in = False
self.fade_out = False self.fade_out = False
self.is_left_side = is_left_side
knob_names = [ knob_names = [
'Delay Time', 'Delay Time',
'Delay Vol', 'Delay Vol',
@ -38,7 +40,7 @@ class Knobs:
for i in range(len(knob_names)): for i in range(len(knob_names)):
self.knobs.append(Knob(self, knob_names[i], self.knobs_radius, (x, y), 0)) self.knobs.append(Knob(self, knob_names[i], self.knobs_radius, (x, y), 0))
y += self.knobs_radius + knobs_spacing y += self.knobs_radius + knobs_spacing
if i == 3 or i == 6: if i == 3 or (self.is_left_side and i == 6) or (not self.is_left_side and i == 0):
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_vanish_parameter = 0
@ -90,24 +92,39 @@ class Knobs:
def calculate_label_path(self, knob, label_x): def calculate_label_path(self, knob, label_x):
if len(knob.label_path) == 0: if len(knob.label_path) == 0:
knob.label_path.append(knob.get_position()) knob.label_path.append(knob.get_position())
if (knob == self.knobs[0] or knob == self.knobs[1] or knob_index = knob.get_index(self.knobs)
knob == self.knobs[4] or knob == self.knobs[5]): if self.is_left_side:
x = knob.get_position()[0] + self.knobs_radius * 1.5 if knob_index in [0, 1, 4, 5] :
y = knob.get_position()[1] + self.knobs_radius * 1.5 x = knob.get_position()[0] + self.knobs_radius * 1.5
knob.label_path.append((x, y)) y = knob.get_position()[1] + self.knobs_radius * 1.5
elif (knob == self.knobs[2] or knob == self.knobs[3] or knob == self.knobs[6]): elif knob_index in [2, 3, 6]:
x = knob.get_position()[0] + self.knobs_radius * 1.5 x = knob.get_position()[0] + self.knobs_radius * 1.5
y = knob.get_position()[1] - self.knobs_radius * 1.5 y = knob.get_position()[1] - self.knobs_radius * 1.5
knob.label_path.append((x, y)) else: # knob 7
elif (knob == self.knobs[7]): x = knob.get_position()[0] - self.knobs_radius * 1.5
x = knob.get_position()[0] - self.knobs_radius * 1.5 y = knob.get_position()[1] + self.knobs_radius * 1.5
y = knob.get_position()[1] + self.knobs_radius * 1.5
knob.label_path.append((x, y)) knob.label_path.append((x, y))
if (knob == self.knobs[0] or knob == self.knobs[3]): if (knob == self.knobs[0] or knob == self.knobs[3]):
knob.label_path.append((self.knobs[0].get_position()[0] + self.knobs_radius * 1.5, self.gui.screenH/2)) knob.label_path.append((knob.get_position()[0] + self.knobs_radius * 1.5, self.gui.screenH/2))
elif (knob == self.knobs[4] or knob == self.knobs[6] or knob == self.knobs[7]): elif (knob == self.knobs[4] or knob == self.knobs[7]):
knob.label_path.append((self.knobs[4].get_position()[0] + self.knobs_radius * 1.5, self.gui.screenH/2)) knob.label_path.append((self.knobs[4].get_position()[0] + self.knobs_radius * 1.5, self.gui.screenH/2))
else:
if knob_index in [1, 2, 4, 5]:
x = knob.get_position()[0] + self.knobs_radius * 1.5
y = knob.get_position()[1] + self.knobs_radius * 1.5
elif knob_index in [3, 6, 7]:
x = knob.get_position()[0] + self.knobs_radius * 1.5
y = knob.get_position()[1] - self.knobs_radius * 1.5
else: # knob 0
x = knob.get_position()[0] + self.knobs_radius * 1.5
y = knob.get_position()[1] + self.knobs_radius * 1.5
knob.label_path.append((x, y))
if (knob == self.knobs[0] or knob == self.knobs[1]):
knob.label_path.append((knob.get_position()[0] + self.knobs_radius * 1.5, self.gui.screenH/2))
elif (knob == self.knobs[4] or knob == self.knobs[7]):
knob.label_path.append((knob.get_position()[0] + self.knobs_radius * 1.5, self.gui.screenH/2))
knob.label_path.append((label_x - 10, self.gui.screenH/2)) knob.label_path.append((label_x - 10, self.gui.screenH/2))