/
sxfour
/
cpp_sfml_all_projects
Обзор
Документация
Войти
/
sxfour
/
cpp_sfml_all_projects
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
SFML_AudioPlayer/project/Visualizer.h
47 строк
1 KB
Egor Levashov
Add files via upload
26 апр 2024, 17:39
Не верифицирован
26 апр 2024, 17:39
f10932c
Код
Авторство
О чём код?
#pragma once class Visualizer { public: Visualizer() { for (int ranges = 0; ranges < 64; ranges++) { sf::RectangleShape freqRangeRect = sf::RectangleShape(); freqRangeRect.setSize(sf::Vector2f(2, 0)); freqRangeRect.setPosition(0.f + (20 * ranges), 650.f); freqRangeRect.setFillColor(sf::Color::White); freqRangeRects.push_back(freqRangeRect); } } std::vector<sf::RectangleShape>& getFreqRangeRects() { return freqRangeRects; } void update(std::vector<std::vector<double>>& frequencyVisualizationVector, double songPlayingOffset) { frequencyFrame = (int)(songPlayingOffset * 30); for (int rect_i = 0; rect_i < freqRangeRects.size(); rect_i++) { float rectHeight = freqRangeRects[rect_i].getSize().y; float newRectHeight; if (frequencyFrame < frequencyVisualizationVector.size()) { newRectHeight = frequencyVisualizationVector[frequencyFrame][rect_i] * -1; } else { newRectHeight = rectHeight; } freqRangeRects[rect_i].setSize(sf::Vector2f(16, newRectHeight)); } } private: int frequencyFrame = 0; std::vector<sf::RectangleShape> freqRangeRects; sf::RectangleShape backgroundRect; };