setup- ja draw-funktioita tarvitaan kun halutaan tehdä ohjelmia, jotka eivät pääty heti kun kaikki komennot on suoritettu. Niitä tarvitaan myös kaikissa interaktiivissa ohjelmissa. Ensiksi määritellään setup()
eli valmistelu funktio. setup-funktioon kirjoitetaan koodi, joka suoritetaan ohjelman aluksi valmisteluna. Esimerkiksi size()
pitää määrittää setup-funktiossa. draw()
eli piirrä funktion sisältö ajetaan uudestaan ja uudestaan, joten sen avulla voidaan esimerkiksi animoida.
Esim. seuraava ohjelma käyttää setup() ja draw() funktioita ja piirtää ympyröitä kursorin osoittaamaan kohtaan.
// valmistelut
void setup() {
size(400, 300);
}
// uudelleen ja uudellen ajettava koodi
void draw() {
// piirtää ympyrän kursorin kohdalle
ellipse(mouseX, mouseY, 30, 30);
}
if (ehto) {
//suoritetaan jos ehto täyttyy
}
if-komennon avulla voi ohjata mikä osa ohjelmasta ajetaan. if lauseessa sulkujen sisään kirjoitetan jokin ehto, joka täyttyy tai ei täyty. Jos ehto täyttyy aaltosulkeiden välissä olevat käskyt suoritetaan. Jos ehto ei täyty koko kohdan yli hypätään.
Esim. seuraava ohjelma piirtää vihreitä ympyröitä hiiren kohdalle jos hiiri on yli 200 pikselin päässä vasemmasta reunasta ja jos hiiri on alle 200 pikselin päässä vasemmasta reunasta piirtää punaisia ympyröitä. Muulloin ei tehdä mitään.
void setup() {
size(400, 300);
}
void draw() {
if (mouseX > 200) {
// Tämä tehdään vain jos ehto täyttyy
fill(0,200,0);
ellipse(mouseX, mouseY, 30, 30);
}
if (mouseX < 200) {
// Tämä tehdään vain jos toinen ehto täyttyy
fill(200,0,0);
ellipse(mouseX, mouseY, 30, 30);
}
}
If-komennon kanssa voidaan käyttää myös else-komentoa, joka määrä mitä tehdään jos if-komennon ehto ei täyty.
if (ehto) {
//suoritetaan jos ehto täyttyy
}
else {
//suoritetaan jos ehto ei täyty
}
Esim. edellinen ohjelma voidaan kirjoittaa myös näin.
void setup() {
size(400, 300);
}
void draw() {
if (mouseX > 200) {
// Tämä tehdään vain jos ehto täyttyy
fill(0,200,0);
ellipse(mouseX, mouseY, 30, 30);
}
else {
// Tämä tehdään vain jos ehto ei täyty
fill(200,0,0);
ellipse(mouseX, mouseY, 30, 30);
}
}