15 - Podprogramy

Úloha 1

Vytvorte skeč, ktorý pri stlačení klávesy zmení pozadie na novú náhodnú farbu a vykreslí do stredu obrazovky veľké čierne "FARBA!":

Úloha 2

Doplňte svoj skeč tak, aby sa toto isté dialo nie len pri stlačení klávesy ale aj pri stlačení myši.

Úloha 3

Máte teraz v programe dvakrát tú istú sekvenciu príkazov, že? Približne takto:

void setup()
{
  size(400,400);
  fill(0);
  textSize(50);
  textAlign(CENTER, CENTER);
}

void keyPressed()
{
  background(random(256), random(256), random(256));
  text("FARBA!", width/2, height/2);
}

void mousePressed()
{
  background(random(256), random(256), random(256));
  text("FARBA!", width/2, height/2);
}

void draw()
{
  
}

Príkazy background a text máme v totožnej podobe aj podprograme keyPressed aj mousePressed. Keby sme chceli napríklad doplniť program, aby bola aj farba textu náhodná, museli by sme doplniť príkaz na náhodný fill aj do keyPressed aj do mousePressed.

Pri zložitejších programoch by bolo dosť náročné udržovať dva kusy kódu stále rovnaké.

Vyriešime to pomocou vlastného podprogramu. My už poznáme podprogramy setup, draw, mousePressed alebo keyPressed.

Upravte svoj program takto:

void setup()
{
  size(400,400);
  fill(0);
  textSize(50);
  textAlign(CENTER, CENTER);
}

void kresliText()
{
  background(random(256), random(256), random(256));
  text("FARBA!", width/2, height/2);  
}

void keyPressed()
{
  kresliText();
}

void mousePressed()
{
  kresliText();
}

void draw()
{
  
}

Vytvorili sme nový podprogram. Volá sa kresliText.

Tým sme zároveň naučili počítač nový príkaz. Príkaz sa volá kresliText().

Doteraz sa podprogramy spúšťali samé od seba. Podprogram setup na začiatku, podprogram draw pri vykresľovaní, podprogram mousePressed pri stlačení myši.

Kedy sa spustí náš podprogram kresliText? Spustí sa tam, kde napíšeme kresliText().

Úloha 4

Doplňte do podprogramu kresliText príkaz, ktorý nastaví aj farbu písma na náhodnú:

Skontrolujte, že to funguje rovnako aj pri stlačení myši aj pri stlačení klávesy.

Pomocou podprogramov si robíme väčší poriadok v kóde, aby sme nemali na viacerých miestach ten istý kód, lebo to sa potom ťažko udržiava a modifikuje.

Takto zadefinovaný vlastný podprogram funguje zároveň ako príkaz. Vieme ho zavolať (spustiť), kedy potrebujeme. Stačí keď napíšeme jeho názov so zátvorkami: kresliText();ako hocijaký iný príkaz.

Úloha 5

Vytvorte nový skeč a v ňom podprogram s názvom gps. Tento podprogram vygeneruje náhodné súradnice x,y a vypíše ich na obrazovku na pozíciu x,y.

Zavolajte tento podprogram vnútri draw:

Ak neviete, ako vypísať dve čísla x a y, tak použite dva príkazy text. Jeden vypíše hodnotu x kúsok naľavo od pozície x,y a druhý vypíše hodnotu y kúsok napravo od pozície x,y.

Úloha 6

Upravte svoj program tak, aby sa gps() nevykonávalo pri každom vykreslení, ale iba pri stlačení klávesy.

Last updated