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 colors import *
|
||||||
from fonts import *
|
from fonts import *
|
||||||
from knob import *
|
from knob import *
|
||||||
|
import random
|
||||||
|
|
||||||
class Knobs:
|
class Knobs:
|
||||||
|
|
||||||
def __init__(self, gui, values):
|
def __init__(self, gui):
|
||||||
|
|
||||||
self.gui = gui
|
self.gui = gui
|
||||||
|
|
||||||
@ -20,7 +21,9 @@ class Knobs:
|
|||||||
'Gain'
|
'Gain'
|
||||||
]
|
]
|
||||||
|
|
||||||
self.values = values
|
self.values = []
|
||||||
|
for i in range(len(knob_names)):
|
||||||
|
self.values.append(random.random())
|
||||||
|
|
||||||
# Create and position the knobs
|
# Create and position the knobs
|
||||||
self.knobs_radius = self.gui.screenW / 25
|
self.knobs_radius = self.gui.screenW / 25
|
||||||
@ -31,7 +34,7 @@ class Knobs:
|
|||||||
y = knobs_y
|
y = knobs_y
|
||||||
self.knobs = []
|
self.knobs = []
|
||||||
for i in range(8):
|
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
|
y += self.knobs_radius + knobs_spacing
|
||||||
if i == 3 or i == 6:
|
if i == 3 or i == 6:
|
||||||
x += self.knobs_radius + knobs_spacing
|
x += self.knobs_radius + knobs_spacing
|
||||||
@ -39,7 +42,7 @@ class Knobs:
|
|||||||
|
|
||||||
def display_label(self, knob):
|
def display_label(self, knob):
|
||||||
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(knob.value*100) + '% ]',
|
label_fx_value = font_helvetica.render('[ ' + str(int(round(knob.value * 100, 0))) + '% ]',
|
||||||
False, color_primary_light)
|
False, color_primary_light)
|
||||||
|
|
||||||
label_x = self.gui.screenW - label_fx_name.get_width() - 20
|
label_x = self.gui.screenW - label_fx_name.get_width() - 20
|
||||||
|
|||||||
23
main.py
23
main.py
@ -14,7 +14,7 @@ class GuiMain:
|
|||||||
self.screenH = self.screen.get_height()
|
self.screenH = self.screen.get_height()
|
||||||
self.screenW = self.screen.get_width()
|
self.screenW = self.screen.get_width()
|
||||||
|
|
||||||
fx_mode_labels = [
|
self.fx_mode_labels = [
|
||||||
'Strings',
|
'Strings',
|
||||||
'Beat',
|
'Beat',
|
||||||
'L-Loop',
|
'L-Loop',
|
||||||
@ -25,25 +25,30 @@ class GuiMain:
|
|||||||
|
|
||||||
# Create and position the fx_mode buttons
|
# Create and position the fx_mode buttons
|
||||||
self.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
|
x = self.screenW * 2.5 / 19
|
||||||
y = i * self.screenH / 7.5 + 45
|
y = i * self.screenH / 7.5 + 45
|
||||||
r_x = self.screenW * 0.35 / 19
|
r_x = self.screenW * 0.35 / 19
|
||||||
r_y = (self.screenH-20) / 16
|
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.clock = pygame.time.Clock()
|
||||||
self.running = True
|
self.running = True
|
||||||
self.run()
|
self.run()
|
||||||
|
|
||||||
def set_fx_mode(self, mode):
|
def set_fx_mode(self, mode):
|
||||||
|
self.fx_mode = self.fx_mode_labels.index(mode)
|
||||||
for b in self.fx_mode_buttons:
|
for b in self.fx_mode_buttons:
|
||||||
if b.name != mode: b.focused = False
|
b.focused = (b.name == mode)
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
while self.running:
|
while self.running:
|
||||||
@ -58,7 +63,7 @@ class GuiMain:
|
|||||||
|
|
||||||
# RENDER YOUR GAME HERE
|
# RENDER YOUR GAME HERE
|
||||||
|
|
||||||
self.knobs.display()
|
self.knobs[self.fx_mode].display()
|
||||||
|
|
||||||
for button in self.fx_mode_buttons:
|
for button in self.fx_mode_buttons:
|
||||||
button.display()
|
button.display()
|
||||||
|
|||||||
Reference in New Issue
Block a user