Vi ser på to enkle eksempler.
Eksemplel1
Her kan vi klikke med musa, og klikket etterlater en rød sirkel. Sirklene overlever fra en uttegning (draw()) til den neste fordi vi ikke blanker siden ved hver uttegning.
Hvis vi hadde skrevet f.eks. background(255) istarten av draw(), ville alt unntatt den siste sirkelen forsvinne.
Koden er i sin helhet slik:
/*
tegner en kule der vi har klikket med musa
høyreklikk fjerner kuler
*/
// kuleposisjon
float xPos,yPos;
float radius=10;
void setup(){
size(300,300);
xPos=100;
yPos=100;
background(255,255,255);
frameRate(60);
}
void draw(){
fill(255,0,0);
ellipse(xPos,yPos,radius,radius);
}
void mouseClicked(){
// har vi høyreklikket ?
if(mouseButton == RIGHT){
// fjern alle (untatt siste)
background(255,255,255);
}
else{
// mouseX og mouseY angir hvor vi klikket
xPos=mouseX;
yPos=mouseY;
}
}
Eksemplel2
Her bruker vi musa til å tegne med. Når vi dragger, drar musa med museknappen nedtrykt, etterlater den en strek.
Når vi klikker med høyre museknapp nede, blankes siden og vi kan begynne på nytt.
Koden er i sin helhet slik:
/*
Tegner en strek når museknappen er nede
Blanker ut når vi høyre-klikker
*/
boolean dragging=false;
void setup(){
size(300,300);
background(255,255,255);
frameRate(60);
}
void draw(){
// pmouseX,pmouseY er forrige museposisjon
if(dragging)
line(pmouseX,pmouseY,mouseX,mouseY);
}
void mouseDragged(){
dragging=true;
}
void mouseMoved(){
dragging=false;
}
void mouseClicked(){
background(255,255,255);
}