Villkor, logik och händelser
Inom programmering är ett villkor ett logiskt uttryck som är sant eller falskt. Ett villkor kan representeras av en variabel som
har något av värdena true
eller false. Ett villkor kan också vara en likhet eller en olikhet. Villkor används exempelvis när man använder if-satser eller if-else-satser.
if ( villkor ) { // kod som utförs om villkor sant }
if ( villkor ) { // kod som körs om villkor sant } else { // kod som körs om villkor falskt }
Övning - Ett enkelt ritprogram
Skriv in koden och kör programmet
void setup() {
size(600, 400);
background(255);
noStroke();
}
void draw() {
fill(255, 0, 0);
ellipse(mouseX, mouseY, 10, 10);
}
Om programmet ska fungera som ett traditionellt ritprogram, ska det bara ritas när muspekaren trycks ner. Det finns en inbyggd variabel mousePressed
som är sann när muspekaren är nedtryckt och annars falsk. Ändra koden så att det bara ritas när användaren trycker ned och drar med musen.
Använd mousePressed och en if-sats.
Övning - Jämförelser
Det finns sex olika jämförelser i Processing:
<(mindre än)<=(mindre än eller lika med)>(större än)>=(större än eller lika med)==(lika med)!=(inte lika med)
Lägg märke till att en logisk likhet skrivs med dubbla likhetstecken.
Lägg till en if-else-sats som gör att det ritas rött i den högra delen av fönstret och blått i den vänstra halvan. Använd variabeln mouseX och
en lämlig jämförelse.
Övning - Logiska operatorer
Det finns tre logiska operatorer i Processing:
&&(logiskt och)||(logisk eller)!(inte)
I ett logiskt uttryck som innehåller både jämförelser och logiska operatorer, utförs jämförelserna först. Det går därför bra att skriva:
if (100 < mouseX && mouseX < 200) {
}
Det går också bra att använda parenteser kring de "innersta" uttrycken:
if ((100 < mouseX) && (mouseX < 200) {
}
Ändra i koden till ritprogrammet så att det ritas rött i den översta högra kvadranten, och blått överallt annars. Tänk på hur koordinatsystemet fungerar.
Övning - Händelser
Ett sätt att åstadkomma händelsestyrd programmering i Processing är att använda inbyggda logiska variabler som mousePressed inuti
draw-funktionen. Ett annat sätt är att använda inbyggda funktioner för händelser, en sådan är funktionen keyPressed.
Lägg till följande kod längst ned i ditt ritprogram och provkör koden.
void keyPressed() {
background(255);
}
Nu suddas ritningen när en tangent trycks ned. Man kan styra vad som händer beroende på vilken tangent som trycks ned. Vanliga alfanumeriska tangenter kommer man åt genom
att använda key. Ändra koden till:
void keyPressed() {
if (key == 'c' || key == 'C') {
background(255);
}
}
Om andra sorts tangenter ska styra programmet, används istället keyCode. Ändra koden till:
void keyPressed() {
if (keyCode == UP) {
background(255);
}
}
Testkör koden genom att trycka på piltangent upp. För mer information se Processing - keyCode.