Processing Werkcollege 5 functies zonder arguments

18
Multimedia Technology 2 Lessenreeks door Tom Luyten voor Communicatie- en Multimedia Design Maastricht Werkcollege 5 Functies zonder parameters Gebaseerd op het boek “Learning Processing” door Daniel Schiffman En de PowerPoint van Donald W. Smith

Transcript of Processing Werkcollege 5 functies zonder arguments

Page 1: 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

Page 2: Processing Werkcollege 5   functies zonder arguments

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

Page 3: Processing Werkcollege 5   functies zonder arguments

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

Page 4: Processing Werkcollege 5   functies zonder arguments

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

Page 5: Processing Werkcollege 5   functies zonder arguments

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

Page 6: Processing Werkcollege 5   functies zonder arguments

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

Page 7: Processing Werkcollege 5   functies zonder arguments

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

Page 8: Processing Werkcollege 5   functies zonder arguments

Eigen functies

Page 9: Processing Werkcollege 5   functies zonder arguments

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

Page 10: Processing Werkcollege 5   functies zonder arguments

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

Page 11: Processing Werkcollege 5   functies zonder arguments

Vervolgens aanroepen/uitvoeren in de draw loop:

drawBlackCircle();

Eigen functies

Page 12: Processing Werkcollege 5   functies zonder arguments

1

2

decla

rere

n

uitvoeren

Page 13: Processing Werkcollege 5   functies zonder arguments

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

Page 14: Processing Werkcollege 5   functies zonder arguments

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.

Page 15: Processing Werkcollege 5   functies zonder arguments
Page 16: Processing Werkcollege 5   functies zonder arguments

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

Page 17: Processing Werkcollege 5   functies zonder arguments

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.

Page 18: Processing Werkcollege 5   functies zonder arguments

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