Finn en partner å prøve spillet sammen med. Det er OK å være tre personer og bytte på hvilke to som spiller.

Like dokumenter
Steg 1: Hvordan fungerer spillet?

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

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

Steg 0: Installere Pygame Zero

Tell sekunder. Steg 0: Hva er forskjellig fra før? Introduksjon. I denne oppgaven skal vi lage vårt eget spill!

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

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

Sprettende ball Introduksjon Processing PDF

Tegnespillet. Introduksjon:

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

Modell, meldinger og oppdatering

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.

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

Hvor i All Verden? Del 3 Erfaren Scratch PDF

Steg 1: Piler og knappetrykk

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

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

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

CSS: Animasjon Nybegynner

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

Løpende strekmann Erfaren Videregående Python PDF

Steg 1: Animasjons-attributtet

Kanter, kanter, mange mangekanter

Sprettball Erfaren ComputerCraft PDF

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

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

Hvordan man kobler til printeren, laster ned CardPresso, installerer skrifttypen og får kommet i gang med produktet.

Pong. Oversikt over prosjektet. Steg 1: En sprettende ball. Plan. Sjekkliste. Introduksjon

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

Steg 1: Vi starter fra toppen

Verden. Steg 1: Vinduet. Introduksjon

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

Steg 1: Felix har forsvunnet!

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.

Soloball. Steg 1: En roterende katt. Sjekkliste. Test prosjektet. Introduksjon. Vi begynner med å se på hvordan vi kan få kattefiguren til å rotere.

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

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

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

Tryll bort heksa. Introduksjon. Sjekkliste Følg instruksjonene på lista. Huk av etter hvert. Test. Lagre 2/8

HTML: Legg til lyd og video

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

Steg 1: Opprette spillskjerm

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

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

Straffespark Introduksjon Scratch Lærerveiledning

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

Fraktaler og datastrukturer

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

Steg 1: En første animasjon

Steg 1: Katten og fotballbanen

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

Kodetime for Nordstrand barneskole

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

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

HTML: Del inn nettsiden

Bygge en kube. Steg 1: Lage en ny mod. Sjekkliste. Introduksjon

Tegneprogram Journeyman Scratch PDF

PGZ - Hangman Ekspert Python Lærerveiledning

Hvordan slette midlertidige filer i Java kontrollpanel

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

Steg 1: Hvordan styre figurer med piltastene

Halloweenimasjon Introduksjon Scratch PDF

Hvis du får problemer eller ønsker mer hjelp til å gjøre dette, er Anders og Helene tilgjengelige for assistanse. Veiledning for Windows

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

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

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

Forberedelser: Last ned bildefiler

Forberedelser: Last ned bildefiler

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

3. Introduksjon til prosjektet Hringr. Scratch fra scratch Enkel programmering for nybegynnere

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

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

Rull-en-ball Introduksjon Unity PDF

Spøkelsesjakten. Steg 1: Lag et flyvende spøkelse. Sjekkliste. Introduksjon

Logo med FXML. Introduksjon. Skrevet av: Hallvard Trætteberg

Gå til Drawing and Animation i Palette-menyen og legg til Canvas og Ball. OBS! Ball må slippes inni Canvas på skjermen for at den skal bli lagt til.

Ping pong. Steg 1: Sprettende ball. Sjekkliste. Introdusjon:

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

Endre utseendet på nytt grensesnitt med Primo Studio

Farger. Introduksjon. Skrevet av: Sigmund Hansen

Snurrige figurer. Steg 1: En snurrig figur. Sjekkliste. Introduksjon

Hva er det? Steg 1: Få flere ting til å vise seg på tavlen. Sjekkliste. Test prosjektet. Introduksjon

Innhold. Kom i gang med IRiR. 1 Installer R & RStudio. 2 Last ned siste versjon av IRiR-skriptet

Breakout. Introduksjon. Oversikt over prosjektet. Skrevet av: Geir Arne Hjelle og Martin Lie

Farger Introduksjon Processing PDF

Kom i gang med. Kreativitet Programmering Gøy

Kom i gang med Python

3D-Flakser, Del 1 Ekspert Scratch PDF

Bergeland IKT. Elev guide

Introduksjon til versjonskontroll av Ola Lie

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

4. Installasjonsveiledning. Experior - rich test editor for FitNesse -

Steg 1: Få flere ting til å vise seg på tavlen

Kan micro:biten vår brukes som et termometer? Ja, den har faktisk en temperatursensor!

Kan micro:biten vår brukes som en terning? Ja, det er faktisk ganske enkelt!

Fraktaler og datastrukturer

Hvordan oppdatere Java.

Bruk av kildeavskrifter som er merket med grønn kule

Kjenner du alle funksjonene på tastaturet?

Transkript:

Lær av et annet spill! Erfaren Elm Introduksjon Så langt har dere lært å skrive egen kode. Å lære å skrive kode krever mye trening for å bli god. Det er også viktig å kunne lese kode. Da lurer vi på ting som Hvor finner jeg andres kode? Hvordan kjører jeg andres kode? Hvor begynner jeg når jeg skal finne ut hvordan ting henger sammen? Hva skjer om jeg endrer på dette? Til dette bruker vi spillet Elm Joust, skrevet av Stefan Kreitmayer fra Tyskland. Steg 1: Hvordan fungerer spillet? Før vi reprogrammerer spillet, skal vi ha det litt gøy, og finne ut hvordan det henger sammen. Spill! Gå til spillsiden til Elm Joust Finn en partner å prøve spillet sammen med. Det er OK å være tre personer og bytte på hvilke to som spiller. Hvor mange serier må man vinne for å vinne et spill? Har du spilt litt? Ti minutter er passe tid. Hvordan tegnes ballen? Nå skal vi se på hvordan spillet er bygget opp. Start spillet Inspiser den ene ballen Hvordan inspisere? Oppgaven "Hvor er HTML? Jeg ser den ikke!" under Web-kategorien går gjennom hvordan vi kan inspisere elementer på en nettside. Ta en titt her hvis du trenger! Hvordan tegnes det andre? Først skal vi se på selve spillet. Hva slags SVG-element er brukt til å tegne ballene? Hva slags SVG-element er brukt til å tegne plattformen? Hva slags SVG-element er brukt til å tegne stillingen? Finn svg -taggen. Hva er width og height?

Gjør vinduet ditt større eller mindre. Hva er nå width og height? Svg i Elm og i nettleseren Som i Html ser Svg forskjellig ut i Elm og i Nettleseren. Slik ser det ut i Elm: circle [ cx "240", cy "361.6", r "28.799999999999997", fill "rgba(255,255,255,.5)" ] [ ] Slik ser det ut i Nettleseren: <circle cx="240" cy="361.6" r="28.799999999999997" fill="rgba(255,255,255,.5)"> </circle> Steg 2: Last ned og kjør spillet lokalt Elm Joust er et større Elm-program enn programmene vi har skrevet til nå. Når vi skriver store programmer, deler vi dem ofte i flere filer for å holde orden. Til programmer skrevet i flere filer, holder ikke Try Elm, og vi må kjøre programmet på egen PC. Last ned kildekoden Gå til https://github.com/teodorlu/elm-joust, og trykk på den grønne knappen Clone or download. Du kan bruke git i stedet hvis du vil. Pakk ut kildekoden Høyreklikk på zip-filen du lastet ned og velg Pakk ut... eller liknende. Åpne kommandovindu i mappen der kildekoden ligger Gå til mappen der du pakket ut filene. Åpne et kommandovindu her. På Windows kan du holde inne Shift (pil opp for å lage store bokstaver), høyreklikke og velge Åpne kommandovindu her eller tilsvarende. På Linux kan ofte du høyreklikke og velge Open in Terminal. Bygg programmet For små Elm-programmer bruker vi Elm Reactor for å bygge programmet mens vi utvikler. Elm Joust er et større program, og

vi må bruke et byggscript. Vi bruker et byggscrip til å ta Elm-kode og lage en nettside av den. Kjør byggscriptet ved å skrive build.bat eller./build.sh i kommandovinduet. På Windows heter byggscriptet build.bat. På Mac og Linux heter byggscriptet build.sh. Åpne spillet i nettleseren Nå kan vi kjøre spillet. Åpne index.html i nettleseren. Prøv spillet igjen! Fungerer det likt som i nettleseren? Om å bygge programmer fra kildekode Når vi utvikler programmer lager vi først kildekoden. Med kildekoden kan vi bygge og teste programmet. Vi tester programmet vårt for å se at det fungerer før vi sender det til andre. Når vi bygger Elm Joust direkte fra kildekoden, får vi den aller siste versjonen av programmet, som ikke alltid er grundig testet. Å bygge programmer vi skal bruke fra kildekode er lærerikt, men kan være vanskelig. Steg 3: Endre reglene Neo liker også å endre reglene Kontroller tyngdekraften Et søk i kildekoden viser at funksjonen gravity er definert i src/update.elm på linje 202. Senk tyngdekraften. Hva gjør det med spillet? Liker du det? Øk tyngdekraften. Bedre? Mer kjedelig? Fysikk

Reglene for hvordan objekter beveger seg heter Fysikk. Når du justerer tyngdekraften i spillet, endrer du på fysikken i spillet. Andre fysikkregler: Når ballene treffer hverandre, spretter de tilbake i hver sin retning Du faller nedover Du kan kun hoppe når du står på bakken Noen ting blir mer morsomme når vi ikke følger fysikken! I dette spillet kan vi styre ballen når den er i lufta. Dette er svært vanskelig å få til, og fjerner vi luften ("om vi er i vakum"), er det helt umulig! Endre fargene Spillet slik det er nå er meget... grått. Funksjonen renderplayer er definert i src/view.elm, på linje 137. Ser du kallet til Svg.circle? Bytt ut fyllfargen til sirkelen med fargerik farge! "#FF69B4" gir en skarp rosa. Du vil kanskje ha noe annet? Men! Nå blir begge spillerene våre like rosa (eller en annen farge?). Dette fikser vi ved å legge til en ny parameter på funksjonen vår. Farger representeres som Tekst i Elm, på engelsk String. Endre funksjonsdeklarasjonen til renderplayer : (Int,Int) -> Player -> String -> Svg Msg renderplayer (w,h) {position} color = Kjør byggscriptet. Hvorfor kompilerer ikke programmet? Hvor brukes funksjonen renderplayer? Må vi fikse noe her? Når jeg søker etter renderplayer, får jeg flere match: linje 79, linje 80, linje 99, linje 136 og linje 137. Når du får koden til å kjøre, er fremdeles spillerene grå? Må vi endre på funksjonen renderplayer også? Hvor settes fargen til sirkelen? Juster tiden Et søk etter "time" finner funksjonen steerandgravity i src/update.elm. Dette er signaturen til steerandgravity : steerandgravity : Time -> Ui -> Player -> Player steerandgravity delta {pressedkeys} ({velocity} as player) = Ah! delta, av type Time! Jeg gjetter at denne er tiden mellom hver gang spillet oppdateres. Hvor kaller vi steerandgravity? Jeg fant disse to linjene: player1 = scene.player1 > steerandgravity delta ui player2 = scene.player2 > steerandgravity delta ui Skru opp farten på spillet -- få tiden til å gå fortere! Hint: juster delta. Sett forskjellig fart på de to spillerene. Er det fordel å ha rask tid eller sakte tid?

Søke i kildekode Trykk Control + F i editoren din. Kommer det opp et søkefelt? Prøv å skriv i det. Matcher det ordet du skriver i kildekoden? Søk er veldig nyttig for å navigere rundt i kode som andre har skrevet. I din egen kode kan du ofte huske litt av hvordan du har gjort ting. I andres kode er det vanskelig å vite hvor ting ligger! Sprettball! Når ballene treffer hverandre, må vi regne ut ny fart for begge ballene. Et søk etter "collision" finner handlecollisions i Update.elm. Kan du få til ordentlig sprett i kollisjonene? Hmm, spillet ville vært litt urettferdig om en ball var tung som en elefant, og den andre kun var en liten tennisball. Kan du gjøre så spiller én er tung, og spiller to lett? Steg 4: gjett hvilken regel! Nå har du laget din helt egne versjon av Elm Joust. Finn en partner som du kan spille spillet ditt med. Klarer partneren din å gjette hvilke regler du har endret? Lisens: CC BY-SA 4.0 Forfatter: Teodor Heggelund