Grundlæggende opgaver

Fokus punkter man kan overveje for hver opgave

https://editor.p5js.org

https://p5js.org/reference/

Opgave G1 - Interaktion med musen

Lav et program så en hvid firkant med kraftig rød ramme følger musen. Baggrunden skal være grå. Herudover skal du skrive “mouseX:” samt værdien af mouseX ud til Console.

Afprøv funktionaliteten: https://editor.p5js.org/JensValdez/full/XE7hQNMRp

Screenshot 2023-08-20 at 06.08.05.png
Hint

Søg på stroke, rect, strokeWeight, background og mouseX i reference f.eks. https://p5js.org/reference/#/p5/stroke

Hint

Hvis man tegner flere ting på skærmen, så bliver de tegnet i samme rækkefølge som de står i koden.

Hint

Man kan skrive til console således: console.log("mouseX: " + mouseX)

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/XE7hQNMRp

Hvad nu!!: Find en eller to at arbejde sammen med. I skal nu give hinanden en opgave hvor i bruger det i har lært. Alternativt kan i eksperimentere lidt eller lave det i har lyst til indtil i starter på næste opgave.

Opgave G2 - Rækkefølgens betydning for kodelinierne

Lav et program så en gul firkant uden ramme følger musen. Musens cursor skal være i midten af kassen. Baggrunden skal være lilla. Der skal også være blå ellipse og en firesidet rød polygon. Den gule firkant skal bevæge sig ind over den blå ellipse men bag ved den røde polygon.

Afprøv funktionaliteten: https://editor.p5js.org/JensValdez/full/LWKm_2eTG

Screenshot 2023-08-20 at 06.10.32.png
Hint

Se farve koder her: https://www.w3schools.com/colors/colors_picker.asp

Hint

Søg efter ellipse, noStroke og fill i reference

Hint

Slå op i reference (under “2D Primitives” (Shapes)) og find ud af hvad en polygon er og hvordan man tegner den.

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/LWKm_2eTG

Hvad nu!!: Find en eller to at arbejde sammen med. I skal nu give hinanden en opgave hvor i bruger det i har lært. Alternativt kan i eksperimentere lidt eller lave det i har lyst til indtil i starter på næste opgave.

Opgave G3 - Forståelseopgave

Lav et program så der er tre bolde som bevæger sig forskelligt afhængig af hvor langt til hhv. højre og venstre man har sin muse cursor. En blå bold skal have en fast y koordinat men følge muse cursoren i x koordinaten. En grøn bold skal have en fast y koordinat man x koordinaten skal kun være det halve af musens x koordinat. Den røde bold skal bevæge sig op og ned når man bevæger muse curoren til højre og venstre.

Afprøv funktionaliteten: https://editor.p5js.org/JensValdez/full/Z27mhTg_n

Screenshot 2023-08-20 at 06.11.59.png

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/Z27mhTg_n

Hvad nu!!: Find en eller to at arbejde sammen med. I skal nu give hinanden en opgave hvor i bruger det i har lært. Alternativt kan i eksperimentere lidt eller lave det i har lyst til indtil i starter på næste opgave.

Opgave G4 - “if” og “else”. Part 1

Lav et program hvor canvas er delt i to lige store dele. Når muse cursoren er over den venstre halvdel, så skal den venstre halvdel farves sort og når muse cursoren er over den højre halvdel, så skal den højre halvdel være sort (som vist nedenfor)

Afprøv funktionaliteten: https://editor.p5js.org/JensValdez/full/YhWEoypjP

Screenshot 2023-08-20 at 06.12.44.png
Hint

Søg efter if-else i reference

Hint

Når musen er i højre side, så tegn en sort kasse til højre, og når musen er i venstre side, så tegn en sort kasse til venstre.

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/YhWEoypjP

Hvad nu!!: Find en eller to at arbejde sammen med. I skal nu give hinanden en opgave hvor i bruger det i har lært. Alternativt kan i eksperimentere lidt eller lave det i har lyst til indtil i starter på næste opgave.

Opgave G5 - “if” og “else”. Part 2

Løs samme opgave som Opgave G4 men hvor canvas er delt i tre lige store dele.

Afprøv funktionaliteten: https://editor.p5js.org/JensValdez/full/4vyCamh3i

Screenshot 2023-08-20 at 06.13.34.png
Hint

Man kan skrive:

if (mouseX < 100) {
…

} else if (mouseX < 200) {
…

}
else {
…

}

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/4vyCamh3i

Opgave G6 - “&&” (og) operatoren

Tegn et canvas som vist her. Hvis muse cursoren er over firkanten i midten, så skal den farves hvid.

Afprøv funktionaliteten: https://editor.p5js.org/JensValdez/full/EBgr-HhtzW

Screenshot 2023-08-20 at 06.14.25.png
Hint

Hvis flere betingelser skal være opfyldt i en if statement kan man skrive:

if ((mouseX > 100) && (mouseY > 100)){

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/EBgr-HhtzW

Hvad nu!!: Find en eller to at arbejde sammen med. I skal nu give hinanden en opgave hvor i bruger det i har lært. Alternativt kan i eksperimentere lidt eller lave det i har lyst til indtil i starter på næste opgave.

Opgave G7 - mouseIsPressed

Tegn et canvas som vist her. Hvis muse cursoren er over firkanten i midten og man samtidig holder muse knappen nede, så skal firkanten farves hvid

Afprøv funktionaliteten: https://editor.p5js.org/JensValdez/full/Sb_M_w-Fq

Screenshot 2023-08-20 at 06.15.16.png
Hint

Søg på mouseIsPressed

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/Sb_M_w-Fq

Hvad nu!!: Find en eller to at arbejde sammen med. I skal nu give hinanden en opgave hvor i bruger det i har lært. Alternativt kan i eksperimentere lidt eller lave det i har lyst til indtil i starter på næste opgave.

Opgave G8 - keyIsDown (piletasterne)

Tegn et canvas som vist her. Hvis man holder venstre pilen på tastaturet nede, så skal firkanten bevæge sig til venstre (Husk at man skal klikke på canvas med musen før det bliver aktivt)

Afprøv funktionaliteten: https://editor.p5js.org/JensValdez/full/tB3LbyDVt

Screenshot 2023-05-06 at 05.43.27.png
Hint

Søg på keyIsDown

Hint

Lav en variabel ved navn x som holder styr på x-koordinaten. Dette gøres ved på aller første linie at skrive “let x = 25”

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/tB3LbyDVt

Hvad nu!!: Find en eller to at arbejde sammen med. I skal nu give hinanden en opgave hvor i bruger det i har lært. Alternativt kan i eksperimentere lidt eller lave det i har lyst til indtil i starter på næste opgave.

Opgave G9 - keyIsDown (bogstaver)

Tegn et canvas som vist her. Hvis man holder ‘s’ nede, så skal firkanten blive større og hvis man holder ‘m’ nede, så skal den blive mindre (Husk at man skal klikke på canvas med musen før det bliver aktivt)

Afprøv funktionaliteten: https://editor.p5js.org/JensValdez/full/D1CYgx4Z8

Screenshot 2023-05-06 at 05.43.59.png
Hint

Søg på key i reference

Hint

https://www.toptal.com/developers/keycode

Hint

Lave en variabel s som holder styr på størrelsen

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/D1CYgx4Z8

Hvad nu!!: Find en eller to at arbejde sammen med. I skal nu give hinanden en opgave hvor i bruger det i har lært. Alternativt kan i eksperimentere lidt eller lave det i har lyst til indtil i starter på næste opgave.

Opgave G10 - mousePressed

Tegn et canvas med sort baggrund. Hver gang man klikker med musen skal baggrunden blive lidt mere grå/hvid. Den skal ikke blive hurtig hvid bare fordi man holder muse knappen nede (Husk at man skal klikke på canvas med musen før det bliver aktivt).

Afprøv funktionaliteten: https://editor.p5js.org/JensValdez/full/o0ZSTNvl3

Screenshot 2023-05-06 at 05.44.20.png
Hint

Søg på mousePressed

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/o0ZSTNvl3

Hvad nu!!: Find en eller to at arbejde sammen med. I skal nu give hinanden en opgave hvor i bruger det i har lært. Alternativt kan i eksperimentere lidt eller lave det i har lyst til indtil i starter på næste opgave.

Opgave G11 - Forståelse af koordinat systemet

Tegn en trekant der fylder en fjerdedel af canvasa

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/-KfaVIM-E

Note: Husk at tegne koordinatsystemet op først.

Opgave G12 - Søgning i reference

Tegn tre cirkler ved siden af hinanden som bliver mere og mere gennemsigtige

Screenshot 2023-08-20 at 06.16.13.png
Hint

I reference står følgende syntaks for fill: fill(v1, v2, v3, [alpha]) hvilket betyder at den fjerde parameter (alpha) er valgfri. Den skal i spil her.

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/EfwBXMShM

Hvad nu!!: Find en eller to at arbejde sammen med. I skal nu give hinanden en opgave hvor i bruger det i har lært. Alternativt kan i eksperimentere lidt eller lave det i har lyst til indtil i starter på næste opgave.

Opgave G13 - for loop

Byg videre på opgave G12. Tegn 5 cirker ved siden af hinanden som bliver mere og mere gennemsigtige ved brug af et for loop. Se https://p5js.org/reference/p5/for/ i reference for syntaksen.

Screenshot 2023-08-20 at 06.17.16.png

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/f4bPmZLeu

Hvad nu!!: Find en eller to at arbejde sammen med. I skal nu give hinanden en opgave hvor i bruger det i har lært. Alternativt kan i eksperimentere lidt eller lave det i har lyst til indtil i starter på næste opgave.

Opgave G14 - Kode rækkefølgens betydning

Tegn en rød bold med kraftig grå ramme, to grønne bolde uden ramme og en stor tekst uden ramme hvor der står “Hello” med hvid skrift.

Screenshot 2023-08-20 at 06.17.56.png
Hint

Søg på strokeWeight, textSize og text

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/YP9C6LjGp

Hvad nu!!: Find en eller to at arbejde sammen med. I skal nu give hinanden en opgave hvor i bruger det i har lært. Alternativt kan i eksperimentere lidt eller lave det i har lyst til indtil i starter på næste opgave.

Opgave G15 - Hvordan får man en bold til selv at bevæge sig

Tegn en blå bold der langsomt men sikkert af sig selv bevæger sig mod højre

Afprøv funktionaliteten: https://editor.p5js.org/JensValdez/full/xyr39IqsA

Screenshot 2023-05-06 at 05.44.47.png
Hint

Søg efter width

Hint

Lav en variabel x og udfør “x = x + 1” i draw funktionen

Hint

x += 1” er det samme som “x = x + 1”

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/xyr39IqsA

Hvad nu!!: Find en eller to at arbejde sammen med. I skal nu give hinanden en opgave hvor i bruger det i har lært. Alternativt kan i eksperimentere lidt eller lave det i har lyst til indtil i starter på næste opgave.

Opgave G16 - Hvordan får man en bold til at vende rundt

Tilret løsningen fra Opgave G15, så bolden vender rundt og bevæger sig den anden vej når den når til højre side af canvas

Afprøv funktionaliteten: https://editor.p5js.org/JensValdez/full/Wx6ZGCq0I

Screenshot 2023-05-06 at 05.45.10.png
Hint

lav en variabel ved navn retning som starter med at være 1. Hvis bolden når ud over højre side, så skal retning ganges med minus en. Når vi lægger 1 (eller f.eks. 5) til x så ganger vi bare med retning således at fortegnet på det vi lægger til x skifter, dvs. at vi lægger et negativt tal til x når bolden bevæger sig med venstre

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/Wx6ZGCq0I

Hvad nu!!: Find en eller to at arbejde sammen med. I skal nu give hinanden en opgave hvor i bruger det i har lært. Alternativt kan i eksperimentere lidt eller lave det i har lyst til indtil i starter på næste opgave.

Opgave G17 - Hvordan får man en bold til at vende rundt 2

Tilret løsningen fra Opgave G16, så bolden også vender rundt og bevæger sig den anden vej når den når til venstre side af canvas

Afprøv funktionaliteten: https://editor.p5js.org/JensValdez/full/GSJEvLL87

Screenshot 2023-08-20 at 06.19.53.png
Hint

Operatoren "||" betyder eller

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/GSJEvLL87

Hvad nu!!: Find en eller to at arbejde sammen med. I skal nu give hinanden en opgave hvor i bruger det i har lært. Alternativt kan i eksperimentere lidt eller lave det i har lyst til indtil i starter på næste opgave.

Opgave G18 - Hvordan får man en bold til at vende rundt 3

Tilret løsningen fra Opgave G17, så bolden bevæger sig rundt som på et billard bord.

Afprøv funktionaliteten: https://editor.p5js.org/JensValdez/full/UkgoL13Sa

Screenshot 2023-08-20 at 06.20.32.png

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/UkgoL13Sa

Hvad nu!!: Find en eller to at arbejde sammen med. I skal nu give hinanden en opgave hvor i bruger det i har lært. Alternativt kan i eksperimentere lidt eller lave det i har lyst til indtil i starter på næste opgave.

Opgave G19 - Brug af random (tilfældighedsgenerator)

Tilret løsning fra Opgave G17, så bolden skifter til en tilfældig farve når den skifter retning.

Afprøv funktionaliteten: https://editor.p5js.org/JensValdez/full/ZrVdS-uBT

Screenshot 2023-08-20 at 06.21.10.png
Hint

random(0, 255) returnerer et tilfældigt tal mellem 0 og 255

Hint

Lav variabler der holder farven for hhv. rød, grøn og blå

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/ZrVdS-uBT

Hvad nu!!: Find en eller to at arbejde sammen med. I skal nu give hinanden en opgave hvor i bruger det i har lært. Alternativt kan i eksperimentere lidt eller lave det i har lyst til indtil i starter på næste opgave.

Opgave G20 - Hvordan laver man et objekt 1

Lav en klasse ved navn Bold. Bold klassen skal have variablerne this.x og this.y defineret i constructor metoden, se hintet nedenfor. Når man skriver “this.” foran en variabel betyder det at det er objektets variabel at man refererer til. Den skal også have en metode ved navn show() som tegner en blå cirkel. Opret (i setup) et objekt ved navn bold som er af klassen/typen Bold og vis bolden i draw().

Screenshot 2023-08-20 at 06.21.48.png
Hint

Link til noget dokumentation: https://p5js.org/reference/p5/Object/

Hint

A class is defined like this:


class Ball {
  constructor(){
    this.x = 30
    this.y = 30
  }
  
  show(){
    fill(0,0,255, 200)
    circle(this.x, this.y, 30) 
  }
}
                                
Hint

Du må gerne se i løsningseksemplet for at se syntaksen for hvordan man laver en bold

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/sAOYYbgpL

Hvad nu!!: Find en eller to at arbejde sammen med. I skal nu give hinanden en opgave hvor i bruger det i har lært. Alternativt kan i eksperimentere lidt eller lave det i har lyst til indtil i starter på næste opgave.

Opgave G21 - Hvordan får man et objekt til at flytte sig 1

Tilret løsningen fra Opgave G20. Lav en metode i Bold ved navn move() som bevæger bolden mod højre. Kald move() metoden i draw således at bolden bevæger sig mod højre.

Afprøv funktionaliteten: https://editor.p5js.org/JensValdez/full/_4Izl2uaF

Screenshot 2023-08-20 at 06.22.24.png

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/_4Izl2uaF

Hvad nu!!: Find en eller to at arbejde sammen med. I skal nu give hinanden en opgave hvor i bruger det i har lært. Alternativt kan i eksperimentere lidt eller lave det i har lyst til indtil i starter på næste opgave.

Opgave G22 - Hvordan får man et objekt til at flytte sig 2

Tilret løsningen fra Opgave G21, så move bevæger en bold rundt som en billardkugle. Tilret så bolden starter på en tilfældig x og y koordinat mellem 50 og 350 samt at det er tilfældig hvilken retning den starter med at bevæge sig i.

Afprøv funktionaliteten: https://editor.p5js.org/JensValdez/full/M3DDYyviB

Screenshot 2023-08-20 at 06.23.00.png
Hint

Se opgave G18

Hint

Alle variabler der har noget med bolden at gøre skal defineres i constructoren. Husk at skrive this foran alle de variabler der hører til objektet.

Hint

Lave en variabel ved navn xDirection (Dansk: retning i x aksen). Til at starte med sættes xDirection til 1. Dette betyder at bolden skal bevæge sig mod højre. Hvis bolden når helt ud til højre kan man gange xDirection med minus 1. Hvis man ganger xDirection med det tal som bestemmer hvor meget man vil flytte bolden ad gangen, så vil bolden bevæge sig i den rigtige retning.

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/M3DDYyviB

Hvad nu!!: Find en eller to at arbejde sammen med. I skal nu give hinanden en opgave hvor i bruger det i har lært. Alternativt kan i eksperimentere lidt eller lave det i har lyst til indtil i starter på næste opgave.

Opgave G23 - Hvordan virker det når en funktion modtager en reference til et objekt og manipulerer det.

Se på løsningseksemplet og forstå koden. Forklar koden til en anden.

Afprøv funktionaliteten: https://editor.p5js.org/JensValdez/full/rbA8TaLDv

Screenshot 2023-08-20 at 06.23.34.png

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/rbA8TaLDv

Hvad nu!!: Find en eller to at arbejde sammen med. I skal nu give hinanden en opgave hvor i bruger det i har lært. Alternativt kan i eksperimentere lidt eller lave det i har lyst til indtil i starter på næste opgave.

Opgave G24 - Hvordan virker et Array (tabel)

Lav et program som putter fire navne ind i et array (tabel) og skriver dem ud i draw ved brug at et for loop.

Screenshot 2023-08-20 at 06.24.11.png
Hint

Det er en ny syntax. Du må gerne se på løsningseksemplet.

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/Qh15SAR8i

Hvad nu!!: Find en eller to at arbejde sammen med. I skal nu give hinanden en opgave hvor i bruger det i har lært. Alternativt kan i eksperimentere lidt eller lave det i har lyst til indtil i starter på næste opgave.

Opgave G25 - Hvordan putter man objekter i et Array

Tilret løsningen fra Opgave G24 så man putter bolde i arrayet i stedet for tekster. Bold klassen kan kopieres fra Opgave G23. Vigtigt: Når man bruger en objekt orienteret programmeringsstil, så er det nemt at genbruge klasser i andre programmer.

Screenshot 2023-08-20 at 06.24.45.png
Hint

Hvis det er lidt svært må du gerne se på løsningseksemplet.

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/ZPTVyUO3J

Hvad nu!!: Find en eller to at arbejde sammen med. I skal nu give hinanden en opgave hvor i bruger det i har lært. Alternativt kan i eksperimentere lidt eller lave det i har lyst til indtil i starter på næste opgave.

Opgave G26 - Hvordan giver man start værdier når et objekt oprettes 1

Tilret løsningen for opgave G20 så der oprettes to bolde. Når en bold oprettes skal man angive hvor bolden skal pladseres. Den ene bold skal pladseres øverst til venstre og den anden bold skal pladseres nederst til højre.

Screenshot 2023-08-20 at 06.25.20.png
Hint

Det er en ny syntax. Du må gerne se på løsningseksemplet.

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/FIZ9H54on

Hvad nu!!: Find en eller to at arbejde sammen med. I skal nu give hinanden en opgave hvor i bruger det i har lært. Alternativt kan i eksperimentere lidt eller lave det i har lyst til indtil i starter på næste opgave.

Opgave G27 - Hvordan giver man start værdier når et objekt oprettes 2

Tilret løsningen for opgave G26, så boldene oprettes med forskellig farve.

Screenshot 2023-08-20 at 06.25.54.png

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/SVRwK0mye

Hvad nu!!: Find en eller to at arbejde sammen med. I skal nu give hinanden en opgave hvor i bruger det i har lært. Alternativt kan i eksperimentere lidt eller lave det i har lyst til indtil i starter på næste opgave.

Opgave G28 - Hvordan laver man et objekt 2

Løs samme opgave som Opgave G1, men hvor firkanten er lavet som et objekt i stedet.

Afprøv funktionaliteten: https://editor.p5js.org/JensValdez/full/tCDuWsLsP

Screenshot 2023-08-20 at 06.26.28.png

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/tCDuWsLsP

Hvad nu!!: Find en eller to at arbejde sammen med. I skal nu give hinanden en opgave hvor i bruger det i har lært. Alternativt kan i eksperimentere lidt eller lave det i har lyst til indtil i starter på næste opgave.

Opgave G29 - Hvordan laver man en on/off knap

Vi skal i denne øvelse lave en kontakt som til at starte med er slukket. Når man trykker på den så er den tændt og hvis man herefter trykker på den igen, så er den slukket.

Afprøv funktionaliteten: https://editor.p5js.org/JensValdez/full/irak79Ufe

Screenshot 2023-08-20 at 06.27.02.png

Du skal kombinere det du har lært i hele tre opgaver.

I Opgave G28 lavede vi en firkant som et objekt

I Opgave G6 lærte vi hvordan man tester for om muse cursoren er inde over en firkant

I Opgave G7 lærte vi hvordan man tester for om museknappen er trykket ned

Hint

Søg på mouseClicked (i reference)

Hint

Lav et Klasse ved navn OnOffButton. I dens constructor metode skal du definere variablerne this.x, this.y, this.w (bredde), this.h (højde) samt en boolean variabel ved navn isClicked (En boolean variabel kan altid kun være true eller false). Klassen skal have metoden checkIfPressed som skal kaldes fra mouseClicked funktionen. I checkIfPressed kan du have følgende linie “this.isClicked = !this.isClicked”. ! betyder ikke dvs. at vi sætter this.isClicked til det modsatte af hvad den er. Hvis den har værdien false, så bliver den true og omvendt. I show() metoden skal vi have en “if” betingelse der tester på this.isClicked.

Hint

Du må gerne kikke på løsningseksemplet er lidt for svær at lave uden hjælp

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/irak79Ufe

Hvad nu!!: Find en eller to at arbejde sammen med. I skal nu give hinanden en opgave hvor i bruger det i har lært. Alternativt kan i eksperimentere lidt eller lave det i har lyst til indtil i starter på næste opgave.

Opgave G30 - Hvordan fjerner man et objekt fra skærmen

Opret to bold (objekter) og tegn dem på skærmen. Hvis man klikker på en bold skal den forsvinde.

Afprøv funktionaliteten: https://editor.p5js.org/JensValdez/full/ixyccu5DY

Screenshot 2023-08-20 at 06.27.36.png
Hint

Bold klassen skal ud over variablerne this.x, this.y, this.r også have en boolean variabel ved navn this.exists som til at starte med er true. Klassen skal have en metode som hedder removeIfClicked. Her skal du lave følgende kode:


if (dist(this.x, this.y,mouseX, mouseY) < this.r){
   this.exists = false
}
Den indbyggede p5js funktion “dist” finder afstanden mellem to punkter. Hvis afstanden mellem midten af bolden og muse cursoren er mindre end radius af cirklen, så må muse cursoren være inden for cirklen.

Hint

Søg inspiration i Opgave 29 for hvordan man se om der er klikket på et objekt.

Hint

removeIfClicked skal kaldes fra mouseClicked funktionen.

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/ixyccu5DY

Hvad nu!!: Find en eller to at arbejde sammen med. I skal nu give hinanden en opgave hvor i bruger det i har lært. Alternativt kan i eksperimentere lidt eller lave det i har lyst til indtil i starter på næste opgave.

Opgave G31 - Hvordan fjerner man et objekt fra et Array

Vi skal her lære at fjerne objekter fra et Array. Tag udgangspunkt i løsningen fra Opgave G25. Tilret så en bold fjernes hvis der klikkes på den.

Afprøv funktionaliteten: https://editor.p5js.org/JensValdez/full/E6lZycruy

Screenshot 2023-08-20 at 06.28.10.png
Hint

Bold klassen skal have en metode ved navn isClicked skal returnere true hvis der er klikket inden for bolden og som ellers returnere false.

Hint

Benyt mousePressed som du gjorde i Opgave G10. Her skal du have følgende kode som løber arrayet med bolde igennem bagfra og fjerner en bold hvis der er klikket på den.

 
for (let i = bolde.length - 1; i >= 0; i--) {
    if (bolde[i].isClicked()){
        // JavaScript functionen splice kan fjerne et element fra Arrayet
        bolde.splice(i,1)
    }
}

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/E6lZycruy

Hvad nu!!: Find en eller to at arbejde sammen med. I skal nu give hinanden en opgave hvor i bruger det i har lært. Alternativt kan i eksperimentere lidt eller lave det i har lyst til indtil i starter på næste opgave.

Opgave G32 - Hvordan kommunikerer to objekter med hinanden

Du skal her arbejde med hvordan to objekter (af samme klasse) kan kommunikere med hinanden. Tag udgangspunkt i løsningen fra Opgave G25. Lav en ekstra bold der er meget større end de andre. Hvis den store bold og en af de små bolde støder sammen, så skal den lille bold forsvinde.

Afprøv funktionaliteten: https://editor.p5js.org/JensValdez/full/5AiddKYCI

Screenshot 2023-08-20 at 06.28.44.png
Hint

Bold klassen skal have følgende metode:


intersects(other) {
// Bemærk at denne linie returnerer true hvis bolden og den anden bold (other) rører ved hinanden
return dist(this.x, this.y, other.x, other.y) < this.r + other.r;
}

Når alle boldene løbes igennem i draw metoden, så skal man for hver bold kalde dens intersects metode med navnet på den store bold som argument.

Hint

Du må gerne kikke i løsningseksemplet hvis du synes at opgaven er lidt svær.

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/5AiddKYCI

Hvad nu!!: Find en eller to at arbejde sammen med. I skal nu give hinanden en opgave hvor i bruger det i har lært. Alternativt kan i eksperimentere lidt eller lave det i har lyst til indtil i starter på næste opgave.

Opgave G33 - Lav et objekt der langsomt følger efter muse cursoren

Lav et bold objekt der langsomt følger efter muse cursoren. Hvis bolden rører muse cursoren skal den vokse sig større.

Afprøv funktionaliteten: https://editor.p5js.org/JensValdez/full/ojx4Y9My-

Screenshot 2023-08-20 at 06.29.18.png
Hint

I boldens move metode skal du gå hhv. til højre og venstre afhængig af hvor bolden er i forhold til muse cursoren. Det samme med op og ned.

Hint

Den skal også have en grow metode som tester på hvornår den skal vokse.

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/ojx4Y9My-

Hvad nu!!: Find en eller to at arbejde sammen med. I skal nu give hinanden en opgave hvor i bruger det i har lært. Alternativt kan i eksperimentere lidt eller lave det i har lyst til indtil i starter på næste opgave.

Opgave G34 - Hvordan kommunikerer mange objekter med hinanden

Lad os oprette en helt masse bolde der flyver rundt i et rum. Hvis de rammer hinanden skal de ændre retning.

Afprøv funktionaliteten: https://editor.p5js.org/JensValdez/full/-9GUjLQzB

Screenshot 2023-08-20 at 06.29.52.png
Hint

Løsningen er lidt svær. Du må gerne se på løsningseksemplet og læse kommentarer for at forstå hvordan man kan løse denne opgave.

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/-9GUjLQzB

Hvad nu!!: Find en eller to at arbejde sammen med. I skal nu give hinanden en opgave hvor i bruger det i har lært. Alternativt kan i eksperimentere lidt eller lave det i har lyst til indtil i starter på næste opgave.

Opgave G35 - map funktionen

Lav et objekt som er en bold der langsomt men sikkert af sig selv bevæger sig mod højre og skifter retning når den når til hhv. højre og venstre side af canvas. Herudover skal der være en kasse nederst i højre hjørne (på 100x100) der skal fungere som minimap. MiniMappet skal med en lille bold (et objekt ved navn minibold) vise hvor den store bold er på canvas.

Afprøv funktionaliteten: https://editor.p5js.org/JensValdez/full/3trrEYOSIt

Screenshot 2023-08-20 at 06.30.26.png
Hint

Den indbyggede p5js “map” funktion mapper den første værdi (dvs. den store bolds x koordinat) således at intervallet 0 til 400 bliver mappet over i intervallet 300 til 400.

Hint

Du kan søge efter “map” funktionen i reference.

Hint

Hvis opgaven er lidt svær må du gerne se i løsningseksemplet.

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/3trrEYOSIt

Hvad nu!!: Find en eller to at arbejde sammen med. I skal nu give hinanden en opgave hvor i bruger det i har lært. Alternativt kan i eksperimentere lidt eller lave det i har lyst til indtil i starter på næste opgave.

Opgave G36 - Peg et objekt mod et punkt

Tegn et objekt så man tydeligt kan se hvilken retning det peger. Gør så objektet altid peger mod muse cursoren.

Afprøv funktionaliteten: https://editor.p5js.org/JensValdez/full/h5eC38rJ_

Screenshot 2023-08-20 at 06.31.00.png
Hint

Hvis opgaven er lidt svær så må du gerne se i løsningseksemplet.

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/h5eC38rJ_

Hvad nu!!: Find en eller to at arbejde sammen med. I skal nu give hinanden en opgave hvor i bruger det i har lært. Alternativt kan i eksperimentere lidt eller lave det i har lyst til indtil i starter på næste opgave.

Opgave G37 - Hvordan får man et objekt til at skyde en lille bold afsted

Tilret Opgave G36 så vores Hero skyder en lille gul bold i den retning som Hero peger hver gang der er gået to sekunder.

Afprøv funktionaliteten: https://editor.p5js.org/JensValdez/full/uVC3-3jMh

Screenshot 2023-08-20 at 06.31.34.png
Hint

Hvis opgaven er lidt svær så må du gerne se i løsningseksemplet.

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/uVC3-3jMh

Hvad nu!!: Find en eller to at arbejde sammen med. I skal nu give hinanden en opgave hvor i bruger det i har lært. Alternativt kan i eksperimentere lidt eller lave det i har lyst til indtil i starter på næste opgave.

Opgave G38 - Lav en stjernehimmel

Lav en stjernehimmel hvor stjernerne bevæger sig med forskellig hastighed. De stjerner der flyver hurtigt skal være størst og klarest.

Afprøv funktionaliteten: https://editor.p5js.org/JensValdez/full/ybWzmAXed

Screenshot 2023-08-20 at 06.32.08.png

Løsningseksempel: https://editor.p5js.org/JensValdez/sketches/ybWzmAXed

Hvad nu!!: Find en eller to at arbejde sammen med. I skal nu give hinanden en opgave hvor i bruger det i har lært. Alternativt kan i eksperimentere lidt eller lave det i har lyst til indtil i starter på næste opgave.