Kuvion liikuttelu nuolinäppäimillä

Nuolinäppäimet on kuvattu keyCode komennoilla. Processing ohjelmoinnissa nuolinäppäimet ovat seuraavat.

UP

Nuolinäppäin ylös

DOWN

Nuolinäppäin alas

RIGHT

Nuolinäppäin oikealle

LEFT

Nuolinäppäin vasemmalle


Muita keyCode-komentoja ovat: ALT, CONTROL, SHIFT. Kaikki näppäinkomennot eivät ole kuvattu keyCode komennoilla. Esimerkiksi Enter-painike on key-komentona: \n ja välilyönti on key-komentona: 32.

Kun tehdään ohjelma, jossa on ehtolauseet: Jos nuolinäppäintä on painettu oikealle, niin kasvata laskuria ja jos nuolinäppäintä on painettu vasemmalle, niin vähennä laskuria. Nyt kun muistat, että kun laskuri on sama kuin kuvion x-koordinaatti, niin laskurin kasvaessa mennään oikealle ja laskurin vähentyessä mennään vasemmalle. Koodi on yksikertaisuudessaan seuraava.

// Ohjelman tehnyt e-Oppi Oy
// 30.8.2017
int a = 0; // Laskurin alkuarvo
void setup () {
size(400,400); // ikkunan koko
background(255); // Valkea taustaväri
stroke(0); // Musta viivan väri
fill(255,0,0); // Punainen täyttöväri
}
void draw() {
translate(200,200); // Origo (0,0) ikkunan keskelle
background(255); // Tyhjennä tausta
if (keyCode == RIGHT) { // Jos painetaan nuoli oikealle
a++; // Niin kasvata laskuria
}
if (keyCode == LEFT) { // Jos painetaan nuoli vasemalle
a--; // Niin pienennä laskuria
}
ellipse(a,0,20,20); // Ympyrä
}


Tässä on vielä se ongelma, että laskuri jää päälle. Ohjelman pitää siis vielä tarkistaa onko näppäin pohjassa vai ei. Tämä tarkistus tehdään keyPressed-komennolla. Lisätään edellisen ehdon ympärille vielä ylimääräinen ehtolause, niin laskuri kasvaa tai vähenee vain, jos painike on pohjassa ja on lisäksi painettu joko oikeaa tai vasenta nuolinäppäintä. Täydennetty ohjelma näyttää tältä.

// Ohjelman tehnyt e-Oppi Oy
// 30.8.2017
int a = 0; // Laskurin alkuarvo
void setup () {
size(400,400); // ikkunan koko
background(255); // Valkea taustaväri
stroke(0); // Musta viivan väri
fill(255,0,0); // Punainen täyttöväri
}
void draw() {
translate(200,200); // Origo (0,0) ikkunan keskelle
background(255); // Tyhjennä tausta
if (keyPressed == true){ // Jos painiketta painettu
if (keyCode == RIGHT) { // Jos painetaan nuoli oikealle
a++; // Niin kasvata laskuria
}
if (keyCode == LEFT) { // Jos painetaan nuoli vasemmalle
a--; // Niin pienennä laskuria
}
}
ellipse(a,0,20,20); // Ympyrä
}

Lisäksi suositus on se, että laitettaisiin ehto: if (key == CODED), joka tarkistaa onko koodatut näppäimet käytössä. Tämä tarkistus on lähinnä muita kuin PC-koneita varten. Lisäksi ovat olemassa komennot loop(); ja noLoop(); joilla void draw() lohkon suoritus voidaan pysäyttää ja käynnistää.