Steg 1: Canvas-elementet

Like dokumenter
JS: Partikkel-animasjon Nybegynner

Steg 1: Animasjons-attributtet

CSS: Animasjon Nybegynner

Steg 1: Vi starter fra toppen

med canvas Canvas Grafikk Læreplansmål Gløer Olav Langslet Sandvika VGS

Uendelig bakke. Introduksjon. Skrevet av: Kine Gjerstad Eide

Tetris. Introduksjon. Skrevet av: Kine Gjerstad Eide. Lag starten på ditt eget tetris spill!

I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt.

Sprettende ball. Introduksjon: Steg 1: Vindu. Sjekkliste. Skrevet av: Sigmund Hansen

CSS: Style nettsider. Introduksjon. Skrevet av: Arve Seljebu

I denne oppgaven skal du lære hvordan du kan flytte rundt på elementer og gjemme elementene bak andre elementer ved hjelp av CSS.

Steg 1: Felix har forsvunnet!

Det du skal gjøre i denne oppgava er først å sette opp bakgrunnen til spillet og så rett og slett å få firkanter til å falle over skjermen.

ToPlayer. Introduksjon: Skrevet av: Ruben Gjerstad Eide og Kine Gjerstad Eide

Kanter, kanter, mange mangekanter. Introduksjon: Steg 1: Enkle firkanter. Sjekkliste. Skrevet av: Sigmund Hansen

HTML: Del inn nettsiden

JS: Grunnleggende JavaScript

Hvor i All Verden? Del 1. Introduksjon. Steg 1: Styr et helikopter. Skrevet av: Geir Arne Hjelle

Løpende strekmann Erfaren Videregående Python PDF

Modell, meldinger og oppdatering

JS: Trykkomania. Introduksjon. Skrevet av: Arve Seljebu

Steg 1: En første animasjon

I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt.

Verden. Introduksjon. Skrevet av: Kine Gjerstad Eide og Ruben Gjerstad Eide

I denne oppgaven skal vi gi en enkel innføring til klasser og objekter (ordene forklares senere i teksten).

I denne oppgaven forventer vi at du har vært gjennom HTML- og CSS-oppgavene så langt og/eller er kjent med <div> - og HTML5-taggene.

PXT: Det regner mat! Introduksjon. Steg 1: Grunnlag. Sjekkliste. Skrevet av: Helene Isnes

Klask-en-Muldvarp. Introduksjon. Skrevet av: Basert på MITs "MoleMash for App Inventor 2"-guide (

PXT: Himmelfall. Introduksjon. Skrevet av: Helene Isnes og Julie Revdahl

"Dette skjer når jeg trykker på denne knappen" "Når jeg skriver i dette feltet, ser jeg at det andre forandrer seg"

Steg 1: Piler og knappetrykk

Steg 0: Installere Pygame Zero

JS: Trykkomania Nybegynner Web Lærerveiledning

Skrevet av: Oppgaven er laget av GDG Bergen ( AU/GDGBergen/), og tilpasset Kodeklubbens format på oppgaver.

Bygg et Hus. Introduksjon. Steg 1: Prøv selv først. Skrevet av: Geir Arne Hjelle

EKSAMEN / 6101N WebPublisering

CSS: Style nettsider Nybegynner

Sprettende ball Introduksjon Processing PDF

Ping pong. Introdusjon: Steg 1: Sprettende ball. Sjekkliste. Skrevet av: Torbjørn Vik Lunde

Bygge en pyramide. Introduksjon. Steg 1: Lage en ny mod. Sjekkliste. Skrevet av: Pål G. Solheim

"Hjerneteppe!" er en huskelek hvor du skal huske stadig lengre rekker med bokstaver!

Lærerveiledning - Flagg

Steg 1: Få noe på skjermen

Steg 1: Lag bildedeklarasjon

CSS: Endre utseende og stil på tekst Nybegynner

Hoppehelt. Introduksjon. Steg 1: Streken. Sjekkliste. Skrevet av: Geir Arne Hjelle

Hvor i All Verden? Del 3. Introduksjon. Steg 0: Forrige gang. Sjekkliste. Skrevet av: Geir Arne Hjelle

Snøballkrig. Introduksjon. Steg 1: En snøballkaster. Skrevet av: Geir Arne Hjelle

Steg 1: Hvordan fungerer spillet?

Om du allerede kjenner Scratch og har en Scratchbruker kan du gå videre til Steg 1.

ITF Eksamensform: Skriftlig (digital) Dato: 28/

PXT: Flasketuten peker på

Steg 1: Tekst på flere linjer

Farger. Introduksjon. Skrevet av: Sigmund Hansen

CSS-formatering: stilark med kommentarer

Skilpaddekunst. Introduksjon. Skrevet av: Geir Arne Hjelle

Lærerveiledning - Snøballkrig

PXT: Micro:bit repeater

Flagg. Introduksjon. Steg 1: Gå i sirkel. Skrevet av: Sverre Oskar Konestabo og Geir Arne Hjelle

La oss begynne enkelt. Vi vil først se hvordan vi kan flytte og snurre på en figur.

Steg 1: Opprette spillskjerm

Soloball. Introduksjon. Steg 1: En roterende katt. Sjekkliste. Skrevet av: Geir Arne Hjelle

Norgestur. Introduksjon. Steg 1: Et norgeskart. Sjekkliste. Skrevet av: Geir Arne Hjelle

Her skal du lære å programmere micro:biten slik at du kan spille stein, saks, papir med den eller mot den.

Donkey Kong. Introduksjon. Oversikt over prosjektet. Skrevet av: Geir Arne Hjelle

PXT: Tikkende bombe. Introduksjon. Steg 1: Vi starter spillet. Skrevet av: Kolbjørn Engeland

Tell sekunder. Introduksjon. Skrevet av: Teodor Heggelund. I denne oppgaven skal vi lage vårt eget spill!

Steg 1: Husker du skilpadden?

Steg 1: Hente grafikk fra nettet

Denne oppgaven innfører funksjoner, og viser hvordan vi kan skrive og teste funksjoner i Ellie.

Halloweenimasjon Introduksjon Scratch PDF

Hvor i All Verden? Del 2. Introduksjon. Steg 0: Forrige gang. Skrevet av: Geir Arne Hjelle

Input fra brukeren. Hente tekst fra brukeren. Moduler og program. Modell, meldinger og oppdatering. Skriv ut teksten. Introduksjon

Tegnespillet. Introduksjon:

For å sjekke at Python virker som det skal begynner vi med å lage et kjempeenkelt program. Vi vil bare skrive en enkel hilsen på skjermen.

Start et nytt Scratch-prosjekt. Slett kattefiguren, for eksempel ved å høyreklikke på den og velge slett.

Steg 1: Katten og fotballbanen

HTML: Legg til lyd og video

Steg 1: Bli kjent med spillet

Verden. Steg 1: Vinduet. Introduksjon

Kanter, kanter, mange mangekanter

PXT: Det regnar mat! Introduksjon. Steg 1: Grunnlag. Sjekkliste. Skrevet av: Helene Isnes. Oversatt av: Stein Olav Romslo

Hvor gammel er du? Hvor gammel er du? Del 1: Skrive ut til skjerm. Gjøre selv. Skrevet av: Sindre O. Rasmussen, Kodeklubben Trondheim

JS: Grunnleggende JavaScript Nybegynner

ToPlayer. Steg 1: Kom i gang med metodene setup og draw. Gjør dette: Introduksjon:

Asteroids. Introduksjon. Oversikt over prosjektet. Skrevet av: Geir Arne Hjelle

Stjerner og galakser Nybegynner Python PDF

Klask-en-Muldvarp. Steg 1: Gjøre klart spillbrettet. Sjekkliste. Introduksjon

Bygge en kube. Introduksjon. Steg 1: Lage en ny mod. Skrevet av: Pål G. Solheim

Steg 1: Hvordan styre figurer med piltastene

og bevegelse funksjoner som blir aktivert av hendelser Keyboard Informasjonsteknologi 2 Læreplansmål Gløer Olav Langslet Sandvika VGS

Lærerveiledning - Snøballkrig

Denne oppgaven viser hvordan vi kan bruke musen til å kontrollere elm-programmene våre.

PXT: Spå fremtiden med bilder

(X)HTML, CSS og JavaScript HTML. Det første dokumentet Grunnleggende programmering i Java Monica Strand 26.

Start et nytt PXT-prosjekt, for eksempel ved å gå til makecode.microbit.org (

HTML: Publiser nettsiden din. Publiser nettsiden din på Internett. Github. Brukernavn.github.io

Steg 1: Endre bakgrunn og finne figurer

La oss begynne enkelt. Vi vil først se hvordan vi kan flytte og snurre på en figur.

Transkript:

JS: Partikkel-animasjon Skrevet av: Lars Klingenberg Kurs: Web Tema: Tekstbasert, Nettside, Animasjon Fag: Matematikk, Programmering Klassetrinn: 5.-7. klasse, 8.-10. klasse, Videregående skole Introduction I denne oppgaven skal vi bruke JavaScript til å få figurer vi å bevege seg. Vi skal altså lære å animere ved hjelp av JavaScript og noe som heter Canvas. Under ser du animasjonen vi kommer til å lage. Denne oppgaven er den første i en liten serie av andre partikkel -oppgaver, derfor er det viktig å forstå det som skjer i denne oppgaven. I denne oppgaven vil du få bruk for det du har lært i oppgaven Grunnleggende JavaScript (../grunnleggende_js/grunnleggende_js.html). Steg 1: Canvas-elementet I HTML bruker vi <canvas> til å tegne figurer ved hjelp av JavaScript. Selve <canvas> - elementet gjør ikke så stor nytte for seg, så derfor bruker vi JavaScript til å fortelle hva slags grafikk <canvas> -elementet skal inneholde. La oss skrive det som trengs for å jobbe med canvas :

Åpne favoritt teksteditoren di Lag en ny HTML-fil som heter `partikler.html Kopier koden under inn i partikler.html : <html> <head> <meta charset="utf-8"> <title>partikkel-fest</title> <style> body { background-color:#666; #canvas { background-color:#000; margin-left:100px; </style> </head> <body> <canvas id="canvas" width="500" height="500"></canvas> </body> </html> Forklaring: Canvas <canvas id="canvas" width="500" height="500"></canvas> er selve Canvas -elementet. Den har en gitt høyde og bredde 500px x 500px. Vi skal bruke JavaScript til å lage andre elementer inne i canvas -elementet. I CSSen er det lagt til en grå bakgrunnsfarge til <body> og sort bakgrunnsfarge til <canvas>.

Steg 2: Tegn et objekt Nå som vi vet hvordan canvas ser ut er det på tide å prøve det ut: Sett inn <script> </script> i koden din Lag to tomme variabeler: var canvas; var ctx; Vi skal nå fylle disse variablene når siden vår lastes, da bruker vi noe som heter window.onload : window.onload = function() { canvas = document.getelementbyid("canvas"); ctx = canvas.getcontext("2d"); canvas -variabelen holder nå på HTML-elementet vårt. ctx -variabelen vil være det grafiske elementet som blir lagt til i canvas, dette elementet kan vi manipulere ved hjelp av stil, som vi skal se på snart. For å kunne lage grafikk i canvas er de to linjene over påkrevd, så nå som vi har det på plass kan vi starte å tegne! Nå skal vi lage objekter, så la oss lære litt om hva et objekt er: Forklaring: Objekt La oss nå lage et objekt som skal tegnes. I JavaScript er et objekt en variabel som kan holde på flere verdier eller variabler, som vi ofte kaller for attributter. La oss se på et raskt eksempel med en bil:

var bil = { navn: "Volkswagen", modell: "Golf" antallseter: 5, farge: "Blå", ; Vi kan enkelt hente ut informasjonen vi vil ha fra objektet ved å skive følgende: console.log(bil.navn); // Skriver ut navnet på bilen: Volkswagen console.log(bil.farge); // Skriver ut fargen på bilen: Blå For å endre på ett av attributtene gjør vi bare følgende: bil.farge = "Rød"; Nå vil attributtet farge bli endret fra Blå til Rød. På denne måten slipper vi å lage mange variabler, som skal høre til samme element, vi bruker bare objekter. Lag et objekt som heter particle og som inneholder følgende attributter: x - posisjon, y -posisjon, størrelse og farge Bestem selv en passende verdi for attributtene. Disse kan være lurt å eksperimentere litt med senere i oppgaven. Hint Lag en funksjon som heter draw. Denne skal tegne elementet for oss. I draw skal vi nå legge til hvilke farge vi vil at elementet vårt skal ha, du bestemmer selv hvilken farge: ctx.fillstyle = particle.farge;

Nå skal vi tegne et kvadrat (firkant hvor alle sidene er like lange) i fargen vi valgte over: ctx.fillrect(particle.x,particle.y,particle.size,particle.size); Forklaring: ctx.fillrect() ctx.fillrect() tar inn 4 variabler: ctx.fillrect(x-posisjon, y-posisjon, bredde, høyde); Over brukte vi de attributtene vi lagde i objektet particle. I vårt objekt particle har vi satt en x - og y -posisjon, samt en størrelse som vi setter på både bredde og høyde for å få et kvadrat. Lagre og kjør funksjonen draw() når siden lastes. Forslag til koden så langt:

CTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title></title> <style> body { background-color: #666; #canvas { background-color: #000; margin-left: 100px; </style> <script> var canvas; var ctx; var particle = { x: 0, y: 0, size: 10, farge: "red" ; window.onload = function() { canvas = document.getelementbyid("canvas"); ctx = canvas.getcontext("2d"); draw(); ; size); //Tegner particle function draw() { ctx.fillstyle = particle.farge; ctx.fillrect(particle.x, particle.y,particle.size,particle. ; </script> </head> <body> <canvas id="canvas" width="500" height="500"></canvas>

</body> </html> Steg 3: Flytt på partikkelen Nå som vi har fått frem en rød firkant, som er partikkelen vårt, så skal vi nå se hvordan vi kan få den til å flytte på seg. For å få dette til å skje må vi legge til noen nye attributter i objektet vårt, og endre disse underveis i funksjonen vår. For å gjøre dette må vi lære å bruke setinterval, men først må vi endre på objektet vårt. I objektet particle, legg til attributtene xspeed og `yspeed Sett verdiene til xspeed og yspeed til å være 2 foreløpig I draw må vi nå endre particle sin x -posisjon med xspeed, samme må vi gjøre med y -posisjonen. Måten man øker et attributt på er slik: objekt.attributt1 = objekt.attributt1 + objekt.attributt2; Legg til det som trengs i draw for å få particle til å endre x - og y -posisjonen sin Hint For at vi skal få en animasjon så må vi kjører draw flere ganger enn bare 1, derfor må vi bruke setinterval for å gjenta draw. Kjør funksjonen draw hvert 30 millisekund: setinterval(draw, 30); Forklaring: setinterval setinterval kjører en funksjon hvert X millisekund.

Altså betyr setinterval(draw, 30); at funksjonen draw() kjøres hvert 30 millisekund. NB! 1000 millisekunder er ett sekund. Fjern draw(), vi trenger ikke den lenger, ettersom setinterval vil kjøre draw for oss Lagre og kjør siden vi har laget til nå! Som du ser så lager den en lang diagonal stripe. Som du kanskje har skjønt må vi finne en måte vi kan fjerne den forrige vi tegnet slik at vi skaper en illusjon om at den flytter på seg og ikke bare lager mange etter hverandre. I starten av draw må vi bruke ctx.clearrect(0,0,500,500); for å fjerne alt som er innenfor det svarte. Altså fra ( x, y )-posisjonen (0,0) og helt til (500,500). Lagre og kjør på nytt! Gratulere du har laget din første animasjon i JavaScript! Utfordring Prøv å få partikkelen til å gå rett frem Få partikkelen til å gå rett ned Få partikkelen til å gå baklengs Får du til at partikkelen bytter til en tilfeldig farge hver gang den bytter posisjon? Ekssempel på ferdig kode til oppgaven:

<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title></title> <style> body { background-color:#666; #canvas { background-color:#000; margin-left:100px; </style> <script> var canvas, ctx; var particle = { x: 0, y: 0, xspeed: 2, yspeed: 2, size: 10, farge: "red" ; window.onload = function() { canvas = document.getelementbyid("canvas"); ctx = canvas.getcontext("2d"); setinterval(draw, 30); ; //Tegner og skyter particle opp function draw() { ctx.clearrect(0,0,500,500); size); ctx.fillstyle = particle.farge; ctx.fillrect(particle.x, particle.y,particle.size,particle. particle.x = particle.x + particle.xspeed; particle.y = particle.y + particle.yspeed;

</script> </head> <body> <canvas id="canvas" width="500" height="500"></canvas> </body> </html> Lisens: CC BY-SA 4.0 (http://creativecommons.org/licenses/by-sa/4.0/deed)