xxxxxxxxxx
89
let font;
let points = [];
let circleColors = [];
let squareColors = [];
let circleSizes = [];
let rectSizes = [];
let pointsSampled = 0.5;
let pointsSampledSlider;
let input;
let nightModeButton;
let nightMode = false;
function preload() {
font = loadFont("BBBouquet-BudkeGX.ttf");
}
function setup() {
createCanvas(windowWidth, windowHeight);
textAlign(CENTER);
input = createInput();
input.position(10, 130);
input.changed(updatePoints);
mic = new p5.AudioIn();
mic.start();
noStroke();
nightModeButton = createButton("★");
nightModeButton.mousePressed(toggleNightMode);
pointsSampledSlider = createSlider(1, 10, 5);
}
function updatePoints() {
points = font.textToPoints(input.value(), windowWidth/6 -50, windowHeight/2 + 100, 200, {
sampleFactor:0.1,
simplifyThreshold: 0
});
// GENERATE RANDOM COLOR FOR EACH POINT AND STORED IN A ARRAY
for (let i = 0; i < points.length; i++) {
circleColors.push(color(random(255), random(255), random(255)));
squareColors.push(color(random(255), random(255), random(255)));
circleSizes.push(random(1, 5));
rectSizes.push(random(5, 10));
}
}
function draw() {
background(235);
pointsSampled = pointsSampledSlider.value
console.log( mic.getLevel());
for (let i = 0; i < points.length; i++) {
let pt = points[i];
// let circleSize = 5 + mic.getLevel() * 600;
// let rectSize = 10 + mic.getLevel() * 600;
let cx = pt.x;
let cy = pt.y;
let squareSize = rectSizes[i] + mic.getLevel() * random(300,1000);
let circSize = circleSizes[i] + mic.getLevel() * random(0,400) ;
let rx = cx - squareSize / 2;
let ry = cy - squareSize/ 2;
// pointSize = 5 + mic.getLevel() * 600;
fill(squareColors[i]);
rect(rx, ry, squareSize );
fill(circleColors[i]);
ellipse(cx, cy, circSize );
}
}
function toggleNightMode () {
if (nightMode === true) {
nightMode = false;
} else if (nightMode === false) {
nightMode = true;
}
console.log(nightMode);
}