Just to perhaps help some future strugglers I'll put down my entire code here with some //explaining
Because you won't be able to see the beautiful(!) picture array, here is what it somewhat looks like:
http://zap.psy.utwente.nl/zaps/zaps/zaps/herkennen_emoties.res/frames.html
With a lot of thanks to Chrisir :)
int currentScreen;
PFont f;
PFont font;
int maxImages = 27;
int imageIndex = 0;
PImage[] images = new PImage[27];
String myText = "Type hier je naam en leeftijd";
//array maken met woorden
String[] cat=new String[7];
void setup() {
//what you want your screen and lettertype to look like. Don't forget to 'create font' first (under tools)
size(600, 600);
noStroke();
smooth();
f = createFont("Arial", 20, true);
}
void mouseClicked() {
//continue on to the next screen, unless ur on screen 2
if (currentScreen !=2) {
currentScreen++;
if (currentScreen > 5) {
currentScreen = 0;
//stop at screen 5, that's where the program should end instead of starting from the beginning
if (currentScreen !=5){
currentScreen = 5;
}
}
}
}
void draw() {
//present your code in different screens
setNextScreen() ;
}
void setNextScreen () {
switch(currentScreen) {
case 0: drawScreenZero(); break;
case 1: drawScreenOne(); break;
case 2: drawScreenTwo(); break;
case 3: drawScreenThree(); break;
case 4: drawScreenFour(); break;
case 5: drawScreenFive(); break;
default: background(255); break;
}
}
//draw the first screen
void drawScreenZero() {
background(255);
fill(0);
textFont(f,25);
text("Emoties",10,50);
textFont(f,15);
text("‘Wie ogen heeft om te zien en oren om te horen, kan zich ervan overtuigen dat de stervelingen geen geheim kunnen verbergen. Wanneer iemands lippen zwijgen, kletst hij met zijn vingertoppen; uit alle poriën dringt het verraad naar buiten’.",10,70,width-20,90);
text("- freud",10,140,width,120);
text("De gevoeligheid voor het lezen van lichaamstaal en gezichtsuitdrukkingen is een aangeboren mogelijkheid om op indringende en directe wijze met anderen te communiceren. Lichaamstaal is niet altijd handig. Zoals Freud schreef ‘uit alle poriën dringt het verraad naar buiten’; het kan moeilijk zijn om je lichaamstaal te laten corresponderen met je verbale taal. Zonder lichaamstaal, en dan met name gezichtsuitdrukkingen, zou communiceren echter erg lastig worden! Gezichtsuitdrukkingen zijn essentieel om emoties te kunnen communiceren. Pakweg 80% van onze communicatie verloopt via lichaamstaal en zonder zou voor veel miscommunicatie zorgen. Het is niet voor niets dat er tegenwoordig ook via schriftelijke communicatie gebruik wordt gemaakt van emoticons. Toch komt miscommunicatie nog veelvuldig voor. Eén van de redenen daarvoor zou kunnen zijn dat bepaalde gezichtsuitdrukkingen (en emoticons) moeilijker zijn te interpreteren dan andere. Als dat zo is, dan zal deze ZAP dat kunnen aantonen. Naderhand zal een toelichting gegeven worden.",10,190,width-20,height);
}
void drawScreenOne() {
background(255);
fill(0);
textFont(f,25);
text("Instructie",10,50);
textFont(f,15);
text("In dit experiment krijg je na elkaar 28 foto’s te zien waarop verschillende mensen, verschillende emoties uitbeelden. Geef aan welke emotie jij denkt dat de persoon op de foto uitbeeldt door een keuze te maken uit een lijstje van beschikbare emoties. Let wel, zodra je een emotie uit het lijstje hebt aangeklikt ga je onmiddellijk door naar de volgende foto; je kunt je keuze niet herstellen. Denk dus eerst goed na en klik dan pas een emotie aan!",10,70,width-20,height);
}
void drawScreenTwo() {
background(255);
font = loadFont("BellMT-48.vlw");
textFont(font,30);
fill(0);
//put the pictures from the picture array in different categories
cat[0]="blijheid";
cat[1]="angst";
cat[2]="walging";
cat[3]="verdriet";
cat[4]="verassing";
cat[5]="verachting";
cat[6]="woede";
//rectangle tekenen, eerst variabele aanmaken
int rectangleY= 165;
rectMode(CORNER);
//lettertype en grootte
font = loadFont("BellMT-48.vlw");
textFont(font,30);
//keep track of the answers people give
for(int i=1; i<8; i=i+1){
fill(249, 203, 202);
rect(445,rectangleY, 150, 45);
fill(0);
text (cat[i-1],450,rectangleY+35);
rectangleY =rectangleY+45;
}
//make a picture array
for (int i = 0; i < images.length; i++) {
images[i] = loadImage("a" + i + ".JPG");
}
//pictures all the same size
image(images[imageIndex],100, 100, width/2, height/1.5);
}
void mousePressed(){
//when you press the mouse within these boundaries, go on to the next picture
if (currentScreen==2 && (mouseX<595)&&(mouseX>445) && (mouseY<480)&&(mouseY>165)) {
int CatPressed = floor((mouseY-165)/ 45);
println (cat[CatPressed]);
println (images[imageIndex]);
imageIndex = (imageIndex + 1);
//go through all the pictures of the array, and when you've shown the last picture, continue on to the next screen
if (imageIndex>=images.length){
currentScreen++;
}
}
}
void drawScreenThree() {
background(255);
fill(0);
textFont(f,25);
text("Jouw antwoorden",10,50);
}
void drawScreenFour(){
background(255);
fill(0);
textFont(f,25);
text("Theorie",10,50);
textFont(f,15);
text("In de psychologie is er lange tijd onenigheid geweest over wanneer van emoties gesproken kan worden en hoeveel emoties er eigenlijk bestaan. Hanteren we voor het bepalen van emoties bijvoorbeeld de mate van opwinding of bijvoorbeeld de mate waarin een gebeurtenis subjectief wordt ervaren? De psycholoog Paul Ekman beargumenteerde dat het aantal basisemoties gelijk is aan het aantal gezichtsuitdrukkingen die we kunnen onderscheiden. Aangetoond is dat de gezichtsuitdrukkingen woede, angst, walging, verdriet en blijheid universeel zijn. Volgens Ekman kunnen we deze gezichtsuitdrukkingen daarom als emoties doen gelden. Voor de gezichtsuitdrukkingen verassing en verachting is minder bewijs dat zij algemeen herkent en erkent worden als emoties. Meestal blijkt dan ook dat mensen meer moeite hebben met het herkennen of juist interpreteren van de gezichtsuitdrukkingen voor ‘verachting’ en ‘verassing’ dan met die voor ‘blijheid’ en ‘verdriet’. Om gezichtsuitdrukkingen juist te kunnen interpreteren, zo stelt de psychologe Lisa Feldman Barrett, is het kennen van de context onontbeerlijk.",10,70,width-20,height);
text("Gezichtsuitdrukkingen worden gevormd door gezichtsspieren die via zenuwen met de hersenen verbonden zijn en van daaruit worden gecoördineerd. Emoties en gezichtsuitdrukkingen lopen daarom hand in hand. Gebleken is dat, als je oprecht een emotie voelt, je andere gezichtsspieren gebruikt bij het uitdrukken ervan, dan wanneer je een emotie nadoet. Uit onderzoek blijkt dat mensen heel redelijk kunnen inschatten of iemand bijvoorbeeld echt lacht of doet alsof. Verder is gebleken dat, wanneer je een emotie uitbeeld, je deze emotie ook daadwerkelijk gaat ervaren. Dit wordt de ‘facial feedback hypothese’ genoemd. Mensen met een pen tussen de tanden beoordeelden een cartoon bijvoorbeeld als humoristischer dan mensen zonder pen tussen de tanden: de James-Lange theorie. ",10,360,width-20,height);
}
void drawScreenFive(){
background(255);
fill(0);
textFont(f,25);
//be sure to use the generelized variable 'myText', otherwise it won't work
text(myText, 160, 250, width, height);
}
void keyPressed() {
//make a beautiful textbox :)
if (keyCode == BACKSPACE) {
if (myText.length() > 0) {
myText = myText.substring(0, myText.length()-1);
}
} else if (keyCode == DELETE) {
myText = "";
} else if (keyCode != SHIFT && keyCode != CONTROL && keyCode != ALT) {
myText = myText + key;
}
}