added a knobs instance for every fx_mode

This commit is contained in:
SallarShayegan
2025-02-28 14:04:53 +01:00
parent 3eae3a7cf6
commit b960bcbd7f
2 changed files with 21 additions and 13 deletions

23
main.py
View File

@ -14,7 +14,7 @@ class GuiMain:
self.screenH = self.screen.get_height()
self.screenW = self.screen.get_width()
fx_mode_labels = [
self.fx_mode_labels = [
'Strings',
'Beat',
'L-Loop',
@ -25,25 +25,30 @@ class GuiMain:
# Create and position the fx_mode buttons
self.fx_mode_buttons = []
self.fx_mode = 0
for i in range(len(fx_mode_labels)):
for i in range(len(self.fx_mode_labels)):
x = self.screenW * 2.5 / 19
y = i * self.screenH / 7.5 + 45
r_x = self.screenW * 0.35 / 19
r_y = (self.screenH-20) / 16
self.fx_mode_buttons.append(LozengeButton(self, fx_mode_labels[i], (x,y), r_x, r_y))
self.fx_mode_buttons[0].focused = True
self.knobs = Knobs(self, [0, 0.1, 0.4, 0.9, 0.2, 0.5, 0.8, 0.3])
self.fx_mode_buttons.append(LozengeButton(self, self.fx_mode_labels[i], (x,y), r_x, r_y))
self.set_fx_mode(self.fx_mode_labels[self.fx_mode])
self.knobs = []
for i in range(len(self.fx_mode_labels)):
self.knobs.append(Knobs(self))
self.clock = pygame.time.Clock()
self.running = True
self.run()
def set_fx_mode(self, mode):
self.fx_mode = self.fx_mode_labels.index(mode)
for b in self.fx_mode_buttons:
if b.name != mode: b.focused = False
b.focused = (b.name == mode)
def run(self):
while self.running:
@ -58,7 +63,7 @@ class GuiMain:
# RENDER YOUR GAME HERE
self.knobs.display()
self.knobs[self.fx_mode].display()
for button in self.fx_mode_buttons:
button.display()