Как передвигать экран в pygame?
Есть код, который считывает амплитуды звука с микрофона и рисует по ним график.
import pyaudio
import numpy as np
import pygame as pg
class Camera:
def __init__(self) -> None:
self.rect = pg.rect.Rect(0, 0, W, H)
def update(self, value) -> None:
self.rect[0] += value
CHUNK = 512
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
W, H = 1700, 800
FPS = RATE / CHUNK
sc = pg.display.set_mode((W, H))
prev = 0
sec = CHUNK / RATE * 150
clock = pg.time.Clock()
audio = pyaudio.PyAudio()
stream = audio.open(format=FORMAT, channels=CHANNELS,
rate=RATE, input=True,
frames_per_buffer=CHUNK)
print("Start...")
camera = Camera()
while True:
for i in pg.event.get():
if i.type == pg.QUIT:
exit()
data = stream.read(CHUNK)
np_data = np.frombuffer(data, dtype=np.int16)
amplitude = np.abs(np_data).mean()
print(sec, amplitude)
pg.draw.line(sc, 'blue', (sec, H - prev * 15), (sec + CHUNK / RATE * 150, H - amplitude * 15))
# pg.draw.line(sc, (0, 255, 0), (sec, j), (sec + CHUNK / RATE, j))
'''if sec % W >= 6 * W / 7:
camera.update(CHUNK / RATE * 150)'''
# sc.blit()
prev = amplitude
sec += CHUNK / RATE * 150
# print(amplitude)
clock.tick(FPS)
pg.display.flip()
"""stream.stop_stream()
stream.close()
audio.terminate()"""
Нужно чтобы когда значение sec достигало, скажем, 5W/6 двигать экран со скоростью отрисовки графика. Помогите пожалуйста