xxxxxxxxxx
65
//Κινούμενος κύκλος που αλλάζει μέγεθος και χρώμα ανάλογα με τις κινήσεις του ποντικιού. Παίζει ήχο που ενεργοποείται με τις κινήσεις του ποντικιού.
var sound;
let ease = 0.80;
let x = 40;
let y = 40;
//Preload του ήχου
function preload() {
sound = loadSound('Ham.mp3');
sound.loop(); // loop
}
function setup() {
createCanvas(windowWidth, windowHeight);
sound.play();
amp = new p5.Amplitude();
}
function draw() {
let vol = amp.getLevel();
let targetX = mouseX; // παίρνει την x θέση ποντικιού
let dx = targetX - x; //υπολογίζει τη διαφορά ανάμεσα το targetx (θέση-στόχος) και της τωρινής θέσης του ποντικιού
x += dx * ease; //ενημερώνει την θέση x χρησιμοποιώντας easing
let targetY = mouseY; // παίρνει την y θέση ποντικιού
let dy = targetY - y; // υπολογίζει τη διαφορά ανάμεσα το targety (θέση-στόχος) και της τωρινής θέσης του ποντικιού
y += dy * ease; // ενημερώνει την θέση y χρησιμοποιώντας easing
//Ορισμός χρώματος background αναλόγως εάν παίζει ο ήχος
if (sound.isPlaying() == true) {
background(255, 0, 0);
} else {
background(0, 0, 255);
}
sound.rate(map(mouseX, 0, width, 0.2, 5));
sound.setVolume(map(mouseY, 0, height, 0, 1)); // ορίζει την ένταση του ήχου ανάλογα με τη θέση y του ποντικιού
// ορίζει το μέγεθος της έλλειψης ανάλογα με τη θέση του ποντικιού
let ellipseSize = map(dist(mouseX, mouseY, width/2, height/2), 0, dist(0, 0, width/2, height/2), 50, 500);
// Ορισμός χρώματος κύκλου ανάλογα με τη θέση
let fillColor;
if (targetX > x) {
fillColor = color(255, 255, 0);
} else {
fillColor = color(0, 255, 0);
}
//Κύκλος
fill(fillColor);
ellipse(x, y, ellipseSize, ellipseSize); //ανάλογα με τη θέση ορίζεται το μέγεθος του κύκλου
console.log(vol)
}
// Fullscreen
function mousePressed() {
let fs = fullscreen();
fullscreen(!fs);
}
function windowResized() {
resizeCanvas(windowWidth, windowHeight);
}