Я пытаюсь создать виртуальный синтезатор с Pygame и некоторыми другими библиотеками.Заметка может быть воспроизведена двумя способами: нажатием кнопки на экране или нажатием клавиш на клавиатуре.Ввод с клавиатуры не работает при нажатии на экран.
Следующий код представляет собой цикл Pygame, в котором были указаны оба типа ввода.
for event in pygame.event.get():
if event.type == pygame.QUIT:
crashed = True
if event.type == pygame.K_ESCAPE:
crashed = True
if pygame.mouse.get_pos()[0] in range(0, 50) and pygame.mouse.get_pos()[1] in range(400,
450) and event.type == pygame.MOUSEBUTTONDOWN:
button(sineCod, (0, 255, 0))
wave_1 = 0 # sine
elif pygame.mouse.get_pos()[0] in range(100, 150) and pygame.mouse.get_pos()[1] in range(400,
450) and event.type == pygame.MOUSEBUTTONDOWN:
button(sawCod, (0, 255, 0))
wave_1 = 1 # saw
elif pygame.mouse.get_pos()[0] in range(200, 250) and pygame.mouse.get_pos()[1] in range(400,
450) and event.type == pygame.MOUSEBUTTONDOWN:
button(squareCod, (0, 255, 0))
wave_1 = 2 # saw
elif pygame.mouse.get_pos()[0] in range(300, 350) and pygame.mouse.get_pos()[1] in range(400,
450) and event.type == pygame.MOUSEBUTTONDOWN:
button(triangleCod, (0, 255, 0))
wave_1 = 3
elif pygame.key.get_focused() is True:
print("Receiving Keyboard Focus")
if event.type == pygame.locals.KEYDOWN:
if event.key == pygame.locals.K_w: # C
play(frequencies[0])
if event.key == pygame.locals.K_2: # C#
play(frequencies[1])
if event.key == pygame.K_w: # D
play(frequencies[2])
if (pygame.mouse.get_pos()[0] in range(40) and pygame.mouse.get_pos()[1] in range(
190)) or (pygame.mouse.get_pos()[0] in range(75) and pygame.mouse.get_pos()[1] in range(190,
320)) and event.type == pygame.MOUSEBUTTONDOWN: # C
play(frequencies[0])
elif pygame.mouse.get_pos()[0] in range(75, 150) and pygame.mouse.get_pos()[1] in range(
320) and event.type == pygame.MOUSEBUTTONDOWN: # D
play(frequencies[2])
elif pygame.mouse.get_pos()[0] in range(150, 225) and pygame.mouse.get_pos()[1] in range(
320) and event.type == pygame.MOUSEBUTTONDOWN: # E
play(frequencies[4])