Seuraaja
Tehdään ohjelma, jossa ympyrä liikkuu hiiren liikkeiden mukaan. Nuoli on seuraaja, joka menee aina kohti ympyrää. Ohjelman koodi on seuraava.
Ohjelman idea on se, että laskureilla a ja b liikutaan aina kohti hiirtä. Kun haluamme pyörittää nuolta, niin silloin vain pyörityksen ajaksi siirrämme origon nuolen paikalle. Oikea kulma pyöritykselle voidaan laskea tan2()-funktiolla. Kun nuoli on pyöritetty oikeaan asentoon, niin sen jälkeen palautamme koordinaatiston takaisin popMatrix()-komennolla. Ohjelman suoritus näyttää tältä.

// Ohjelman tehnyt e-Oppi Oy
// 30.8.2017
int a = 200; // Nuolen alkukoordinaatti
int b = 200; // Nuolen alkukoordinaatti
void setup () {
size(400,400); // Ikkunan koko
}
void draw () {
background(255); // Taustaväri valkoinen
float x = mouseX; // Hiiren vaaka koordinaatti
float y = mouseY; // Hiiren pysty koordinaatti
float kulma = degrees(atan2(x-a,y-b)); // Ympyrän ja hiiren välinen kulma
pushMatrix(); // Nuolen pyöritys alkaa, muistiin
translate(a,b); // Origo nuolen paikkaan
rotate(radians(90-kulma)); // Käännä nuoli kohti hiirtä
fill(255,0,0); // Punainen väri
noStroke(); // Ei reunaviivaa
rect(-20,-10,30,20); // Suorakulmio
triangle(20,0,0,20,0,-20); // Kolmio
popMatrix(); // Nuolen pyöritys loppuu, palauta muistista
if (a < x) { // Liiku kohti hiirtä
a++;
}
if (a > x) {
a--;
}
if (b < y) {
b++;
}
if (b > y) {
b--;
}
fill(0); // Musta väri
ellipse(x,y,20,20); // Ympyrä eli hiiren kursori
if((x==a) && (y==b)) { // Jos nuolen koordinaatit = hiiren koordinaatit
noLoop(); // Lopeta toisto
textSize(100); // Tekstin koko 100
fill(0,0,255); // Sininen väri
text("Game",50,150); // Peli
text("Over",50,250); // Loppui
}
}
Ohjelman idea on se, että laskureilla a ja b liikutaan aina kohti hiirtä. Kun haluamme pyörittää nuolta, niin silloin vain pyörityksen ajaksi siirrämme origon nuolen paikalle. Oikea kulma pyöritykselle voidaan laskea tan2()-funktiolla. Kun nuoli on pyöritetty oikeaan asentoon, niin sen jälkeen palautamme koordinaatiston takaisin popMatrix()-komennolla. Ohjelman suoritus näyttää tältä.
