Processing Werkcollege 5 functies zonder arguments

Post on 12-Jul-2015

198 views 0 download

Transcript of Processing Werkcollege 5 functies zonder arguments

Multimedia Technology 2Lessenreeks door Tom Luyten

voor Communicatie- en Multimedia Design Maastricht

Werkcollege 5

Functies zonderparameters

Gebaseerd op het boek “Learning Processing” door Daniel Schiffman

En de PowerPoint van Donald W. Smith

LESSON 3: Organisation

Functies (p. 101 120)

• Modulariteit

• Een functie declareren en definiëren

• Een functie aanroepen

• Parameters doorgeven

• Een waarde teruggeven

• Hergebruiken

Les 5 : Functies

LESSON 3: Organisation

Functies (p. 101 120)

• Modulariteit

• Een functie declareren en definiëren

• Een functie aanroepen

• Parameters doorgeven

• Een waarde teruggeven

• Hergebruiken

Les 5 : Functies

Functies zijn een manier om stukken van je programma te bundelen in modulaire stukken.

Maakt het schrijven en aanpassen van grote programma’s overzichtelijker.

vb. Space invaders

void draw(){

background(0);

drawSpaceShip();

moveShip();

moveEnemies();

}

Modulariteit

void draw(){

background(0);

drawSpaceShip();

moveShip();

moveEnemies();

}

We missen de definitie van deze functies, we weten niet wat erachter zit.

Functies aanroepen doen we al lang, bv. line(), rect(),…

Maar nu…eigen functies schrijven…

Modulariteit

Waarom eigen functies schrijven?

modulariteit

Functies breken een groter programma in

kleinere stukjes, die makkelijker te managen en te lezen zijn.

Hergebruikbaarheid

Functies laten toe dat je code kan hergebruiken

zonder dat je ze opnieuw moet typen

Modulariteit

LESSON 3: Organisation

Functies (p. 101 120)

• Modulariteit

• Een functie declareren en definiëren

• Een functie aanroepen

• Parameters doorgeven

• Een waarde teruggeven

• Hergebruiken

Les 5 : Functies

Eigen functies

Een functie zonder arguments:

void drawBlackCircle(){

fill(0);

ellipse(50,50,20,20);

}

Deze maak je aan als nieuwe codeblok.

Dus buiten setup() en draw()

(bij voorkeur onderaan)

Eigen functies

LESSON 3: Organisation

Functies (p. 101 120)

• Modulariteit

• Een functie declareren en definiëren

• Een functie aanroepen

• Parameters doorgeven

• Een waarde teruggeven

• Hergebruiken

Les 5 : Functies

Vervolgens aanroepen/uitvoeren in de draw loop:

drawBlackCircle();

Eigen functies

1

2

decla

rere

n

uitvoeren

Nu gebeurt alles in 1 functie, ok, maar…

Handiger als we het verder opbreken.

Maakt de structuur van het programma, het ontwerpen in stapjes (pseudo programmeren) én het debuggen later makkelijker

Dus we willen een functie voor: (?)

1. X die de hele tijd veranderd (update)

2. Te checken of X de rand heeft geraakt + dan van richting veranderd (test)

3. Alles te tekenen (een cirkel in dit geval) (teken)

Eigen functies

Deel het programma in, in 3 functies

1. X die de hele tijd veranderd (update)

2. Te checken of X de rand heeft geraakt + dan van richting veranderd (test)

3. Alles te tekenen (een cirkel in dit geval) (teken)

Draw ziet er zo uit:

draw(){

update();

test();

teken();

}

Eigen functies

20 min.

Draw() is heel simpel geworden

Enkel function calls

Voordelen

Updatebaar

In plaats van balletje wil ik een vierkant

update gewoon de display() functie

Debuggen

Door functies uit te commenten, snel fout gevonden

Eigen functies

Voeg een test toe: elke 3de keer dat de cirkel de rand raakt,

Veranderd deze naar een vierkant. (en weer terug na 3 keer)

Nodig: een teller

een boolean

een functie tekenCirkel();

een functie tekenVierkant();

Eigen functies

30 min.

Herschrijf je monstertje door gebruik te maken van functies:

1. update (x of y wordt berekend)

2. test (als x of y buiten rand omkeren)

3. Teken (je monstertje wordt op x en y getekend)

Opdracht