I need help with a code I'm working on for a project.
What I need it to do is show the users the picture one by one and memorize the time spent on each. At the end it should open the webcam and start drawing a portrait of the user with particles whose colors correspond to those of the pictures. I'm having some troubles with the last part of the code: I can't get the webcam to open and I don't know how to start the portrait.
This is the code so far
var faseCorrente = "intro"; // altri valori: "test" e "risultato"
var c = 0;
var sfondo = new Array(6);
var intro;
var classifica = [];
var tempi = [];
var tempoInizio;
//VAR WEBCAM
var video;
var vScale = 16;
var particles = [];
var slider;
//end var webcam
function preload() {
sfondo[0] = loadImage('colore0.jpg');
sfondo[1] = loadImage('colore1.jpg');
sfondo[2] = loadImage('colore2.jpg');
sfondo[3] = loadImage('colore3.jpg');
sfondo[4] = loadImage('colore4.jpg');
sfondo[5] = loadImage('colore5.jpg');
intro = loadImage('Introduzione.jpg');
} //close preload
function setup() {
createCanvas(700, 550);
noStroke();
cursor(HAND);
} //close setup
function draw() {
if (faseCorrente == 'intro') {
background(intro);
} else if (faseCorrente == 'test') {
background(sfondo[c]);
} else if (faseCorrente == 'risultato') {
//background(255);
var durataTotale = 0;
for (t = 0; t < tempi.length; t++) {
durataTotale += tempi[t];
}
var x = 0;
for (var pos = 0; pos < classifica.length; pos++) {
var col = classifica[pos];
fill(col);
var perc = tempi[col] / durataTotale;
var larghezza = round(perc * width);
rect(x, 0, larghezza, height);
x += larghezza;
}
}
}
//calcolo del tempo
function keyPressed() {
if (key == ' ') {
if (faseCorrente == 'intro') {
tempoInizio = millis();
coloreCorrente = 0;
faseCorrente = 'test';
} else if (faseCorrente == 'test') {
c++
//end if
var tempoFine = millis();
tempi[coloreCorrente] = tempoFine - tempoInizio;
coloreCorrente++;
if (coloreCorrente < 6) {
tempoInizio = millis();
} else {
print(tempi);
classifica = [];
for (pos = 0; pos < sfondo.length; pos++) {
var tempoMax = 0;
var coloreMax;
for (var i = 0; i < tempi.length; i++) {
if (!classifica.includes(i) && tempi[i] > tempoMax) {
tempoMax = tempi[i];
coloreMax = i;
}
}
classifica[pos] = coloreMax;
}
print(classifica);
faseCorrente = "risultato";
}
} else if (faseCorrente == 'risultato') {
//WEBCAM
createCanvas(640, 480);
pixelDensity(1);
video = createCapture(VIDEO);
video.size(width / vScale, height / vScale);
for (var w = 0; w < 200; w++) {
particles[w] = new Particle(random(width), random(height));
}
slider = createSlider(0, 255, 127);
background(51);
//end webcam
//GRAFICA WEBCAM
faseCorrente = video.loadPixels();
for (var k = 0; k < particles.length; k++) {
particles[k].update();
particles[k].show();
} //end grafica
//faseCorrente = 'intro';
}
}
}
Thanks to anyone that can help!