Processing

Fortbildning för lärare

Rörelse med tickmodellen

Genom att varje gång datorn tickar, ändra ett objekts position i x- och y-led, kan man modellera rörelse. De variabler som behövs är x och y för positionen samt dx och dy för förändringarna. Dessa variabler måste deklarerar globalt.

Koden:

float x, y, dx, dy;

bör stå överst i programmet.

Övning - Fallande boll

Skriv av och kör koden.

int radius;
float x, y, dx, dy;

void setup() {
  size(600, 400);
  ellipseMode(RADIUS);
  radius = 10;
  x = width/2;
  y = radius;
  dx = 0;
  dy = 2;
}
void draw() {
  background(255);
  x += dx;
  y += dy;
  ellipse(x, y, radius, radius);
}

Se till att du förstår hur koden skulle se ut om bollen istället skulle komma infarande från höger till vänster.

När bollen åker förbi den nedre kanten ser man inget mer. Lägg till kod så att bollen får en ny position vid den övre kanten när den når den nedre kanten. Positionen i x-led kan slumpas fram. Det går även att slumpa olika färger för varje boll.

Övning - Studsa upp och ner

För att åstadkomma en studs, måste bollen ändra riktning. Om y-hastigheten före en studs i nedre kanten är 2, så ska den efter studsen vara -2. Vid en studs i den övre kanten ska den återigen bli 2.

Man kan multiplicera med -1 genom att skriva

dy = (-1)*dy;

eller genom att använda en förkortad operator

dy *= -1;

Ändra i koden så att bollen studsar i både den övre och den nedre kanten.

Övning - Biljardkula

Genom att låta dx vara större än noll, får bollen en rörelse i x-led ocxså. Studsarna i den vänstra och högra kanten görs på liknande sätt som studsarna i den övre och nedra kanten. Skriv kod som simulerar en studsande biljarboll.