added a knobs instance for every fx_mode
This commit is contained in:
11
knobs.py
11
knobs.py
@ -2,10 +2,11 @@ import pygame
|
||||
from colors import *
|
||||
from fonts import *
|
||||
from knob import *
|
||||
import random
|
||||
|
||||
class Knobs:
|
||||
|
||||
def __init__(self, gui, values):
|
||||
def __init__(self, gui):
|
||||
|
||||
self.gui = gui
|
||||
|
||||
@ -20,7 +21,9 @@ class Knobs:
|
||||
'Gain'
|
||||
]
|
||||
|
||||
self.values = values
|
||||
self.values = []
|
||||
for i in range(len(knob_names)):
|
||||
self.values.append(random.random())
|
||||
|
||||
# Create and position the knobs
|
||||
self.knobs_radius = self.gui.screenW / 25
|
||||
@ -31,7 +34,7 @@ class Knobs:
|
||||
y = knobs_y
|
||||
self.knobs = []
|
||||
for i in range(8):
|
||||
self.knobs.append(Knob(self, knob_names[i], self.knobs_radius, (x, y), values[i]))
|
||||
self.knobs.append(Knob(self, knob_names[i], self.knobs_radius, (x, y), self.values[i]))
|
||||
y += self.knobs_radius + knobs_spacing
|
||||
if i == 3 or i == 6:
|
||||
x += self.knobs_radius + knobs_spacing
|
||||
@ -39,7 +42,7 @@ class Knobs:
|
||||
|
||||
def display_label(self, knob):
|
||||
label_fx_name = font_helvetica.render(knob.name, False, color_primary_light)
|
||||
label_fx_value = font_helvetica.render('[ ' + str(knob.value*100) + '% ]',
|
||||
label_fx_value = font_helvetica.render('[ ' + str(int(round(knob.value * 100, 0))) + '% ]',
|
||||
False, color_primary_light)
|
||||
|
||||
label_x = self.gui.screenW - label_fx_name.get_width() - 20
|
||||
|
||||
19
main.py
19
main.py
@ -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',
|
||||
@ -26,24 +26,29 @@ class GuiMain:
|
||||
# Create and position the fx_mode buttons
|
||||
self.fx_mode_buttons = []
|
||||
|
||||
for i in range(len(fx_mode_labels)):
|
||||
self.fx_mode = 0
|
||||
|
||||
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.append(LozengeButton(self, self.fx_mode_labels[i], (x,y), r_x, r_y))
|
||||
|
||||
self.fx_mode_buttons[0].focused = True
|
||||
self.set_fx_mode(self.fx_mode_labels[self.fx_mode])
|
||||
|
||||
self.knobs = Knobs(self, [0, 0.1, 0.4, 0.9, 0.2, 0.5, 0.8, 0.3])
|
||||
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()
|
||||
|
||||
Reference in New Issue
Block a user