Download - Processing Werkcollege 2 - variabelen

Transcript
Page 1: Processing Werkcollege 2 - variabelen

Multimedia Technology 2Lessenreeks door Tom Luyten

voor Communicatie- en Multimedia Design Maastricht

Werkcollege 2

Variabelen

Gebaseerd op het boek “Learning Processing” door Daniel Schiffman

En de PowerPoint van Donald W. Smith

Page 2: Processing Werkcollege 2 - variabelen

Portfolio Open Processing• Eigen portfolio

• Classroom

Variabelen (p. 45 58)• Wat is een variabele?

• Declaratie en initialisatie

• Systeemvariabelen

Werkcollege 2: variabelen

Page 3: Processing Werkcollege 2 - variabelen

- Maak een account aan op: www.openprocessing.org

- Upload je eerste sketch naar je portfolio

- Copy/paste code (gemakkelijk)

- Export/upload

Open Processing Portfolio

Page 4: Processing Werkcollege 2 - variabelen

Open Processing Portfolio

Page 5: Processing Werkcollege 2 - variabelen

Portfolio Open Processing• Eigen portfolio

• Classroom

Variabelen (p. 45 58)• Wat is een variabele?

• Declaratie en initialisatie

• Systeemvariabelen

Werkcollege 2: variabelen

Page 6: Processing Werkcollege 2 - variabelen

Open Processing Classroom

Page 7: Processing Werkcollege 2 - variabelen

Portfolio Open Processing• Eigen portfolio

• Classroom

Variabelen (p. 45 58)• Wat is een variabele?

• Declaratie en initialisatie

• Systeemvariabelen

Werkcollege 2: variabelen

Page 8: Processing Werkcollege 2 - variabelen

Wat is een variabele?

• Een variabele is een naam die verwijst naar een locatie in het geheugen van de computer

• Ze laten ons toe informatie op te slaan en later weer op te roepen

• Variabelen kunnen informatie opslaan zoals kleur, grootte, locatie,…

Variabelen

Page 9: Processing Werkcollege 2 - variabelen

Wat is een variabele?

• Beeld je een variabele in als een doos.

• Er zijn verschillende soorten dozen, waar verschillende inhouden inpassen (bv. Tupperware voor voedsel, kartonnen doos voor papier,…)

• Op de doos plak je een label met een naam om deze later terug te vinden.

Variabelen

Page 10: Processing Werkcollege 2 - variabelen

Wat is een variabele?

De inhoud van zo‟n doos blijft niet hetzelfde, het hele punt van een variabele is natuurlijk dat deze kan variëren

Tom‟s score Billy‟s score

10 5

20 15

30 30

Variabelen

Page 11: Processing Werkcollege 2 - variabelen

Beeld je even het spelletje PONG in.

Welke variabelen zou je nodig hebben om dit spel te programmeren?

Variabelen

Page 12: Processing Werkcollege 2 - variabelen

Portfolio Open Processing• Eigen portfolio

• Classroom

Variabelen (p. 45 58)• Wat is een variabele?

• Declaratie en initialisatie

• Systeemvariabelen

Werkcollege 2: variabelen

Page 13: Processing Werkcollege 2 - variabelen

Declaratie

Je declareert een variabele door eerst het type aan te geven, gevolgd door een naam

• (je zegt dus wat voor soort doos (één voor gehele getallen) en geeft aan welke naam ze krijgt (bv. Tom))

• De naam moet 1 woord zijn, zonder spaties, en moet beginnen met een letter

Herhaling: declaratie en initiatie

Page 14: Processing Werkcollege 2 - variabelen

Toekennen van namen

• Kies steeds een naam met betekenis

• Let op dat de naam geen systeemvariabele is, deze zijn gereserveerd (draw, setup,…) (deze krijgen doorgaans een blauwe kleur)

• Begin je naam met kleine letter, geef elk nieuw woord een hoofdletter: nieuweVariabele

Variabelen : declareren

Page 15: Processing Werkcollege 2 - variabelen

Alle primitieve typen variabelen

• boolean true of false

• char een karakter, „a‟, „b‟, …

• byte een klein getal (van -128 tot 127)

• short een groter getal (van -32768 tot 32767)

• int een groot getal (van -2147483648 tot 2147483647)

• long een gigantisch getal

• float een decimaal getal, 3,5742

• double een decimaal getal met veel plaatsen achter de komma

Variabelen : typen

3 zeer belangrijk: boolean, float, int

Page 16: Processing Werkcollege 2 - variabelen

Initiatie

Eens een variabele is gedeclareerd, kunnen we hem initialiseren

(= er een waarde aan toekennen)

int count;

= een doos voor gehele getallen, met de naam “count”

count = 50;

= stop de waarde 50 in de doos “count”

of

int count = 50;

Variabelen : initiatie

Page 17: Processing Werkcollege 2 - variabelen

Zonder variabelen

Variabelen

Page 18: Processing Werkcollege 2 - variabelen

Met variabelen

Resultaat is nu identiek, maar al wel een stuk beter leesbaar.

denk eraan dat een variabele kan variëren, dat is de drijfveer van interactie.

Variabelen

Page 19: Processing Werkcollege 2 - variabelen

In het vorige voorbeeld zijn de waarden 200, 200 vervangen door de variabelen circleX en CircleY.

Dit zijn nu geen hard gecodeerde cijfers meer, maar doosjes, waarvan de waarde die erin zit kan veranderen.

Wat gebeurt er bij volgende voorbeelden:

• tel elk frame 1 bij circleX

• bij een druk op de knop wordt circleY met 50 vermeerderd

Variabelen

Page 20: Processing Werkcollege 2 - variabelen

Maak een sketch aan,

Met een grootte van 300 op 300 pixels en een witte achtergrond.

Waarin een rood vierkant is te zien van 50 pixels diameter,

Aan de linkerkant van het venster

Maak gebruik van variabelen.

Variabelen

10 min.

Page 21: Processing Werkcollege 2 - variabelen
Page 22: Processing Werkcollege 2 - variabelen

We willen nu dat de cirkel naar rechts beweegt

- Welke variabelen zijn er aanwezig in het programma?

- Welke waarde van welke variabele moeten we veranderen ?

- Welke verandering moet hij ondergaan ?

- Hoe vaak moet dat gebeuren ?

Voorbeeld

Page 23: Processing Werkcollege 2 - variabelen

- circleX = circleX + 1

- circleX++

Hoe kunnen we de cirkel

dubbel zo snel laten

bewegen?

Page 24: Processing Werkcollege 2 - variabelen

Vertaal het vorige voorbeeld zo dat in plaats van dat de cirkel van links naar rechts beweegt, dat hij in grootte toeneemt.

Opdracht

10 min.

Page 25: Processing Werkcollege 2 - variabelen

Portfolio Open Processing• Eigen portfolio

• Classroom

Variabelen (p. 45 58)• Wat is een variabele?

• Declaratie en initialisatie

• Systeemvariabelen

Werkcollege 2: variabelen

Page 26: Processing Werkcollege 2 - variabelen

Deze namen vermijd je best in het declareren van je eigen variabelen omdat ze zijn gereserveerd.

width geeft de breedte van de sketch terug

height geeft de hoogte van de sketch terug

frameCount geeft het aantal frames terug dat is verwerkt

frameRate geeft het aantal frames per seconde terug

screen.width geeft de breedte van het hele scherm terug

screen.height geeft de hoogte van het hele scherm terug

Key geeft de recentst ingedrukte toets terug

keyCode geeft de numerieke code van laatste toets

keyPressed geeft true of false terug naar gelang een toets is ingedrukt

mousePressed geeft true of false terug naar gelang een muisknop wordt ingedrukt

mouseButton geeft left, right of center terug.

Herhaling: Systeemvariabelen

Page 27: Processing Werkcollege 2 - variabelen

width en height geven de waarden terug die je bij size() aangeeft. Dat wil zeggen dat als je size(400,300); instelt, dat width 400 is, en height 300.

Hoe kan je deze systeemvariabelen handig gebruiken?

• om een grootte onafhankelijke sketch te maken (als je bv. Niet weet op welk scherm je software zal terecht komen)

• width/2 en heigth/2 geven je altijd het horizontale en verticale midden van je sketch terug.

Systeemvariabelen

width/2 height/2 width/2, height/2

Page 28: Processing Werkcollege 2 - variabelen

Systeemvariabelen

Teken een programma met een zwarte achtergrond, waar een witte lijn het

venster van boven naar onder in 2 delen verdeelt.

Het mag niet uitmaken hoe groot je sketch is.

Tip: Gebruik hiervoor de systeemvariabelen width, height, width/2 en height/2

10 min.

Page 29: Processing Werkcollege 2 - variabelen

Opdracht

Herschrijf je monster/figuur, zodat de hard-gecodeerde waarden

worden vervangen door variabelen.

Pak het zo aan dat je twee variabelen hebt die de positie van je

volledige monster bepalen: monsterX, monsterY. (tip: kijk naar je

vorige schets: mouseX, mouseY)

Stappen:

- Begin door het monster op een vaste plaats te zetten

- Het monster/figuur beweegt zich naar boven

- Uitbreiding: Kan je ervoor zorgen dat het monstertje horizontaal de

muis volgt, en verticaal in het midden blijft ? (tip: hier heb je de

systeemvariabele mouseX voor nodig)

Merk op hoe gemakkelijk de positie nu te updaten is