Steg 1: Hvordan fungerer spillet?

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

"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. Introduksjon. Skrevet av: Teodor Heggelund. I denne oppgaven skal vi lage vårt eget spill!

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

Modell, meldinger og oppdatering

Steg 1: Piler og knappetrykk

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

Steg 1: Felix har forsvunnet!

Steg 1: Animasjons-attributtet

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

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

PXT: Micro:bit repeater

Steg 1: Vi starter fra toppen

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

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

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

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

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

Sprettende ball Introduksjon Processing PDF

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

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

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

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

Steg 1: Opprette spillskjerm

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

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

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

HTML: Legg til lyd og video

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

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

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

Uendelig bakke. Introduksjon. Skrevet av: Kine Gjerstad Eide

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

Steg 1: Få noe på skjermen

Tegnespillet. Introduksjon:

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

Steg 1: Katten og fotballbanen

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.

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

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

Steg 1: En første animasjon

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

Steg 1: Hvordan styre figurer med piltastene

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

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

PXT: Flasketuten peker på

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

Steg 1: Installere programvaren

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

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

Steg 1: Canvas-elementet

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

Farger. Introduksjon. Skrevet av: Sigmund Hansen

CSS: Animasjon Nybegynner

Løpende strekmann Erfaren Videregående Python PDF

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

Hvor i All Verden? Del 3 Erfaren Scratch PDF

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

Steg 1: Bli kjent med spillet

Fraktaler og datastrukturer

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

PXT: Bjelleklang. Introduksjon. Skrevet av: Kolbjørn Engeland, Julie Revdahl

Kanter, kanter, mange mangekanter

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

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

Steg 1: Tekst på flere linjer

Skilpaddekunst. Introduksjon. Skrevet av: Geir Arne Hjelle

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.

Steg 1: Endre bakgrunn og finne figurer

Steg 1: Lag bakken og få den til følge med

Hash-funksjoner. Introduksjon. Steg 1: Strekkoder. Eksempel. Skrevet av: Martin Strand

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

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

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

Steg 1: Rest etter divisjon

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

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

Steg 1: Lag bildedeklarasjon

Verden. Steg 1: Vinduet. Introduksjon

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

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

Kodetime for Nordstrand barneskole

Hver ting i en liste kalles et element. En liste lages ved å skrive elementer inni [], med, mellom elementene:

7-Segment Display. Introduksjon. Steg 1: Finn frem utstyr. Til denne oppgaven trenger du. Skrevet av: Martin Ertsås & Morten Minde Neergaard

Sprettball Erfaren ComputerCraft PDF

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

Straffespark Introduksjon Scratch Lærerveiledning

Steg 1: Regneoperasjoner på en klokke

Forberedelser: Last ned bildefiler

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

Sprettball. Introduksjon. Skrevet av: Geir Arne Hjelle

Kryptering med vigenere-metoden

På tide med et nytt spill! I dag skal vi lage tre på rad, hvor spillerne etter tur merker ruter med X eller O inntil en av spillerne får tre på rad.

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

JS: Grunnleggende JavaScript

Forberedelser: Last ned bildefiler

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

Transkript:

Lær av et annet spill! Skrevet av: Teodor Heggelund Kurs: Elm Tema: Tekstbasert, Nettside, Spill Fag: Programmering, Teknologi Klassetrinn: 8.-10. klasse, Videregående skole 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 (http://kreitmayer.com/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 (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 byggscript 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 (http://creativecommons.org/licenses/by-sa/4.0/deed)