added the display_label method including the implementation of the visual path from the knobs to the label

This commit is contained in:
SallarShayegan
2025-02-24 12:15:20 +01:00
parent 3424674875
commit 77e92bf273
2 changed files with 42 additions and 15 deletions

53
main.py
View File

@ -32,6 +32,45 @@ font_helvetica = pygame.font.SysFont('Helvetica', 30)
clock = pygame.time.Clock()
running = True
def display_label(index):
fx_label = font_helvetica.render('REVERB WET', False, color_primary_light)
fx_value = font_helvetica.render('[ 86% ]', False, color_primary_light)
label_x = screenW - fx_label.get_width() - 20
label_y = (screenH - fx_label.get_height() - fx_value.get_height()) / 2
screen.blit(fx_label, (label_x, label_y))
screen.blit(fx_value, (label_x, screenH / 2))
pygame.draw.line(screen, color_primary_light, (label_x - 10, label_y), (label_x - 10, screenH - label_y), 2)
line_points = []
line_points.append(knobs[index].get_position())
if (index == 0 or index == 1 or index == 4 or index == 5):
x = knobs[index].get_position()[0] + knobs_radius * 1.5
y = knobs[index].get_position()[1] + knobs_radius * 1.5
line_points.append((x, y))
elif (index == 2 or index == 3 or index == 6):
x = knobs[index].get_position()[0] + knobs_radius * 1.5
y = knobs[index].get_position()[1] - knobs_radius * 1.5
line_points.append((x, y))
elif (index == 7):
x = knobs[index].get_position()[0] - knobs_radius * 1.5
y = knobs[index].get_position()[1] + knobs_radius * 1.5
line_points.append((x, y))
if (index == 0 or index == 3):
line_points.append((knobs_x + knobs_radius * 1.5, screenH/2))
elif (index == 4 or index == 6 or index == 7):
line_points.append((knobs[4].get_position()[0] + knobs_radius * 1.5, screenH/2))
line_points.append((label_x - 10, screenH/2))
for i in range(len(line_points)-1):
pygame.draw.line(screen, color_primary_light, line_points[i], line_points[i+1], 2)
knobs[index].set_value(0.86)
knobs[index].set_color(color_primary_light)
while running:
# poll for events
# pygame.QUIT event means the user clicked X to close your window
@ -44,19 +83,7 @@ while running:
# RENDER YOUR GAME HERE
fx_label = font_helvetica.render('REVERB WET', False, color_primary_light)
fx_value = font_helvetica.render('[ 86% ]', False, color_primary_light)
label_x = screenW - fx_label.get_width() - 20
label_y = (screenH - fx_label.get_height() - fx_value.get_height()) / 2
screen.blit(fx_label, (label_x, label_y))
screen.blit(fx_value, (label_x, screenH / 2))
pygame.draw.line(screen, color_primary_light, (label_x - 10, label_y), (label_x - 10, screenH - label_y), 2)
pygame.draw.line(screen, color_primary_light, (knobs_x + knobs_radius * 1.5, screenH/2), (label_x - 10, screenH/2), 2)
pygame.draw.line(screen, color_primary_light, knobs[2].get_position(), (knobs_x + knobs_radius * 1.5, screenH/2), 2)
knobs[2].set_value(0.86)
knobs[2].set_color(color_primary_light)
display_label(7)
for i in range(8):
knobs[i].display()