Programming is learned by writing programs.
Følgende kode tegner vha. en funktion en cirkel på x = 50, og y = 50, med en radius på 50.
void setup(){
size(400,400);
background(0);
}
void draw(){
drawCircle(50,50,50);
}
void drawCircle(int x, int y, int r){
circle(x,y,r);
}
Lav funktioner for følgende som bliver tegnet på samme canvas.
- drawRectangle()
- drawEllipse()
- drawLine()
- drawTriangle()
Når vi skal lave en funktion som returnerer en værdi, så kan vi ikke bruge en void funktion. Det vil sige at vi skal bruge den datatype på det vi gerne vil have funktionen til at returnere. Hvis vi gerne vil have funktionen til at returnere en float, så vil funktionen se sådan ud:
float funktionsNavn(){
// kode
}
- Skriv en funktion som kan udregne distancen mellem to punkter på canvas. Funktionens navn skal være ”calculateDistance” og tage to par (x,y) koordinater som input og returnere afstanden. HINT: I kan bruge afstandsformlen (Pythagoras’ sætning) til at udregne distancen.
Hvis punktet A har koordinaterne (x1, y1) og punktet B har koordinaterne (x2, y2), så er afstanden mellem punkterne: <MATH>|AB| = \sqrt{(x2-x1)^2 + (y2-y1)^2}</MATH>
- Skriv en funktion der kan udregne arealet af et rektangel. Kald den calculateArea() og lad den tage bredden og højden som input. Funktionen skal selvfølgelig returnere arealet af rektanglet.
- Skriv en funktion med navnet randomColor, som ikke tager nogen inputs men returnere en tilfældig farve i form af en RGB-værdi. HINT: https://processing.org/reference/color_datatype.html
- Skriv et program der bruger drawCircle – funktionen til at tegne tre cirkler med forskellige størrelser på skærmen. Er der andre af de funktioner vi lige har lavet som vi kan bruge til at løse opgaven?
- Skriv et andet program der bruger drawRectangle – funktionen til at tegne to rektangler med forskellige størrelser og farver på skærmen. Kan vi tilføje nogle af de andre figurer også?
- Lav et nyt program til at beregne afstanden mellem to museklik punkter vha. calculateDistance – funktionen. Udskriv returværdien i konsollen.
- Lav et program der bruger mousePressed til at placere en cirkel på det punkt hvor musen blev klikket. Husk at bruge de tidligere funktioner som I har lavet.
- Lav et program der bruger tastatur input keyPressed til at ændre farven på en firkant når en bestemt tast bliver trykket på.
- Lav en knap der kan bruges til at tegne forskellige figurer på skærmen baseret på brugerens valg. Her er der fri mulighed for at slippe jeres kreativitet løs.
- Skriv en funktion der hedder moveBall() der får en cirkel til at bevæge sig horisontalt på canvas. Funktionen skal tage en parameter som input, hastigheden af boldens bevægelse. Funktionen bliver kaldt i draw().
- Lav en ny funktion der hedder bounceBall() der får bolden til at bounce den anden vej når den rammer kanten af canvas. Funktionen skal bruge hastigheden og boldens diameter som input. Når I har fået bolden til at bounce i en retning skal den kunne bounce i den anden retning også.
- Lav en moveBat() funktion som får et bat(en rektangel) til at bevæge sig vertikalt i bunden af canvas. Inputparameter er hastigheden på battets bevægelse.
- Tilføj et bat til sketchen ved at oprette en rektangel med en bestemt bredde, højde og startposition på canvas. Brug moveBat funktionen til at animere battet.
- Implementer kollision mellem bolden og battet. Hvis bolden rammer battet skal bolden bounce den anden vej.
- Omskriv moveBat til at bruge mouseX, så du kan interagere med battet.
Tillykke nu har du dit eget lille spil 😊 Hvem kan designe det mest visuelle interessante spil med ovenstående?