xxxxxxxxxx
77
// Variables globales (accessible de partout)
let Vstockage;
let sounds;
let prevTime;
let beginClick;
// Chargement des sons dans une liste
function preload() {
sounds = [];
for (let i = 0; i < 26; i++) {
let c = String.fromCharCode(i + 97);
sounds.push(loadSound("sounds/" + c + ".mp3"));
}
}
// Setup du sketch (une fois au lancement)
function setup() {
// Parametres du sketch
createCanvas(600, 400);
frameRate(60);
background(255);
strokeWeight(10);
fill(0)
// Parametres du texte
textSize(20);
textAlign(CENTER);
textStyle(ITALIC);
textFont('AUTOPIA');
// initialisation du timer
prevTime = millis();
beginClick = true ;
// Stockage de la precedente position de la souris
Vstockage = createVector(0, 0);
}
// A chaque image (frameRate fois par seconde)
function draw() {
if (mouseIsPressed === true){
if (beginClick) {
prevTime = millis();
beginClick = false ;
}
// Stockage de la position actuelle de la souris
let Vactuel = createVector(mouseX, mouseY);
// Calcul de la distance entre la pos actuelle et la precedente
if (Vstockage.dist(Vactuel) > 8) {
let currentTime = millis();
let deltaTime = currentTime - prevTime;
prevTime = currentTime;
textSize (constrain(deltaTime / 2, 10, 400));
// Generation aleatoire d'une lettre entre a et z
let c = String.fromCharCode(Math.floor(random(26)) + 97);
text(c, mouseX, mouseY);
sounds[c.charCodeAt() - 97].rate(constrain(50 / deltaTime, 0.5, 2));
sounds[c.charCodeAt() - 97].play();
// Mise a jour de la position stockee de la souris
Vstockage = Vactuel.copy();
}
}
}
function mouseReleased(){
beginClick = true ;
}
function keyPressed() {
if (keyCode === RIGHT_ARROW) {
background(255);
}
}