Løpende strekmann Erfaren Videregående Python PDF

Like dokumenter
Steg 0: Installere Pygame Zero

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.

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

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

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

Sprettende ball Introduksjon Processing PDF

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

Kanter, kanter, mange mangekanter

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

Uendelig bakke. Introduksjon. Skrevet av: Kine Gjerstad Eide

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

Skilpaddetekst. Steg 1: Tekst på flere linjer. Sjekkliste. Introduksjon

Skilpaddefraktaler Erfaren Python PDF

Sprettball Erfaren ComputerCraft PDF

Skilpaddekunst. Steg 1: Møt skilpadden. Sjekkliste. Introduksjon. Turtles

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

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

Verden. Steg 1: Vinduet. Introduksjon

Steg 1: Tekst på flere linjer

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

Hvor i All Verden? Del 3 Erfaren Scratch PDF

Steg 1: Animasjons-attributtet

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.

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

Tre på rad mot datamaskinen. Steg 1: Vi fortsetter fra forrige gang. Sjekkliste. Introduksjon

Verden - Del 2. Steg 0: Oppsummering fra introduksjonsoppgaven. Intro

CSS: Animasjon Nybegynner

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

JS: Trykkomania Nybegynner Web Lærerveiledning

Repetisjon Novice Videregående Python PDF

Felix og Herbert Introduksjon Scratch PDF

Rull-en-ball Introduksjon Unity PDF

Steg 1: Piler og knappetrykk

Steg 1: Bli kjent med spillet

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

Bli Kjent med Datamaskinen Introduksjon ComputerCraft PDF

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.

JS: Trykkomania. Introduksjon. Skrevet av: Arve Seljebu

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

Bygg et Hus. Steg 1: Prøv selv først. Sjekkliste. Introduksjon. Prøv selv

Steg 1: Streken. Steg 2: En hoppende helt. Sjekkliste. Sjekkliste. Introduksjon. Hei der! Hoppehelt

Straffespark Introduksjon Scratch Lærerveiledning

Steg 1: Katten og fotballbanen

Steg 1: Lag bildedeklarasjon

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

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

Hvor i All Verden? Del 2 Erfaren Scratch PDF

Skilpaddekunst. Introduksjon. Skrevet av: Geir Arne Hjelle

Mattespill Nybegynner Python PDF

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

PGZ - Hangman Ekspert Python Lærerveiledning

Snøballkrig Ekspert Scratch Lærerveiledning

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

Halloweenimasjon Introduksjon Scratch PDF

King Kong Erfaren Scratch PDF

Rosetta og Philae. Steg 1: Skilpadden blir et romskip. Sjekkliste. Introduksjon

Kodetime for Nordstrand barneskole

Hei verden Introduksjon Swift PDF

Tre på rad mot datamaskinen. Steg 1: Vi fortsetter fra forrige gang

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

Felix og Herbert. Felix og Herbert. Introduksjon

Verden - Del 2. Intro. Skrevet av: Kine Gjerstad Eide

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

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

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

PROGRAMMERING AV SPILL

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

Skilpadder hele veien ned. Steg 1: Tegn et fjell. Sjekkliste. Introduksjon. Hent frem skilpaddene dine, åpne IDLE, det er på tide å tegne igjen.

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

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.

Bursdag i Antarktis Nybegynner Scratch PDF

Steg 1: Hvordan styre figurer med piltastene

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

Tegneprogram Journeyman Scratch PDF

Steg 1: Canvas-elementet

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

Robotinvasjon Introduksjon ComputerCraft PDF

Hangman. Level. Introduksjon

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

Skilpadder hele veien ned

Asteroids. Oversikt over prosjektet. Steg 1: Enda et flyvende romskip. Plan. Sjekkliste. Introduksjon

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

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

Steg 1: Lag et flyvende spøkelse

Snake Expert Scratch PDF

Steg 1: Få Flakse til å falle

Hangman. Steg 1: Velg et ord. Steg 2: Gjett en bokstav. Sjekkliste. Sjekkliste. Introduksjon

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

Vi skal nå programmere et romskip som flyr rundt på skjermen. For å ha kontroll på bevegelsen vil vi bruke to variable, fartx og

Lærerveiledning - Straffespark

Bygge et hus. Steg 1: Vegger. Sjekkliste. Introduksjon

Steg 2: La løvinnen og papegøyen bevege seg

Informasjon Eksamen i IN1000 høsten 2017

Steg 1: Husker du skilpadden?

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

Mesteparten av kodingen av Donkey Kong skal du gjøre selv. Underveis vil du lære hvordan du lager et enkelt plattform-spill i Scratch.

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

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

Transkript:

Løpende strekmann Erfaren Videregående Python PDF Introduksjon I denne oppgaven skal du lage et spill der du styrer en strekmann som hopper over hindringer. Steg 1: Ny fil Begynn med å lage en fil som kan kjøres med Pygame Zero. Lag en ny fil run_stickman.py. Du starter med å bestemme hvor stort vindu vi skal bruke: WIDTH = 550 HEIGHT = 250 Lagre og kjør programmet med pgzrun run_stickman.py. Se til at du får opp et vindu. Steg 2: Hindringer Du skal nå lage boksene som strekmannen løper mot. Dette skal gjøres ved hjelp av en klasse. Klassen skal hete Box og skal ha egenskapene: height, width, color, x, y og en funkson som heter draw() :

class Box: # Skriv egenskaper her def draw(self): # Skriv koden som tegner boksen her Tips: Bruk kommandoen screen.draw.filled_rect() for å tegne rektangler. En rød boks som er 50 piksler bred og høy tegnes i venstre topp med: screen.draw.filled_rect( Rect(0, 0, 50, 50), (255, 0, 0) ) En blå boks i høyre bunn blir: screen.draw.filled_rect( Rect(WIDTH-50, HEIGHT-50, 50, 50), (0, 0, 255) ) Opprett en boks ved å legge til denne linjen i koden: box = Box() Lagre og kjør programmet for å sjekke at du ikke får noen feilmeldinger. Hvis du vil se boksen i vinduet må du tegne den med: def draw(): box.draw() Steg 3: Strekmann Du skal nå lage en strekmann som vi skal kalle stick_man. Lag en strekmann ( stick_man ) fra klassen Actor som bruker bildet running_man. stick_man = Actor('running_man') Sett posisjonen til strekmannens venstre bunn til å være 50, HEIGHT. stick_man.bottomleft = 50, HEIGHT For at koden skal kjøre må du lagre bildet av strekmannen under som running_man.png i mappen images der du har lagret run_stickman.py. Mappen din skal nå se ut som dette:

Steg 4: Funksjonene draw() og update() De fleste spill i Pygame Zero har funksjonene draw() og update(). Draw-funksjonen sørger for at spillvinduet blir tegnet og update-funksjonen gjør endringer i spillet før de tegnes med draw(). Lag draw() med koden i blokken under. Forstår du hva koden gjør? def draw(): screen.clear() screen.fill((255, 255, 255)) stick_man.draw() box.draw() Du må nå lage update(). Du trenger følgende: Få boksen til å flytte seg mot venstre. Hvis boksen er ute av bildet på venstre side, flytt den til høyre side av vinduet. Hvis strekmannen er truffet, skriv Du ble truffet! til terminalen. def update(): # Flytt boksen mot venstre if "boksen er ute av bildet": # Flytt boksen til høyre side av bildet if "strekmannen er truffet": print("du ble truffet!") Tips Flytt boksen For å få boksen til å flytte seg kan du endre x-posisjonen til boksen. Sjekk om strekmannen blir truffet Legg merke til at y-aksen til spillvinduet er positiv nedover, motsatt av det som er vanlig i matematikk. Boksens x- og y- posisjon er hvor boksens øverste venstre hjørne er plassert, som er merket i bildet som (x, y).

Den røde firkanten illustrerer hvor stort bildet til strekmannen er. I tilfellet merket 1 ser du at boksens øverste venstre hjørne er inni bildet til strekmannen. Dette må du sjekke i if-setningen. I tilfelle 2 er boksens øvre høyre hjørne inne den røde firkanten, dette må du også sjekke i if-setningen. Hvordan finne posisjonen til strekmannen? stick_man.bottom gir posisjonen til bunnen av stick_man. stick_man.left gir posisjonen til venstre side av stick_man. Steg 5: Animasjoner Du skal nå gjøre det mulig for strekmannen å hoppe med space tasten. Lag funksjonen on_key_down(key). def on_key_down(key): #(Din kode) on_key_down() kjøres hver gang spilleren trykker på en tast. Hvilken tast som trykkes sendes til funksjonen som key. Lag en if -setning som sjekker at det er tasten space ( keys.space ) som trykkes. Sjekk i samme if -setning om strekmannen er på bakken, det skal kun være lov å hoppe da. For å få strekmannen til å hoppe, bruk animate() : jump_up = animate(stick_man, 'decelerate', duration=0.4, bottom=(height - box.height*1.5)) Koden forteller at: Vi skal lage en animasjon med stick_man.

Bevegelsen skal være av type decelerate, som er høy hastighet i begynnelsen, deretter saktere og saktere. Animasjonen skal vare i 0.4 sekunder. bottom av stick_man skal flyttes til HEIGHT - box.height*1.5, altså 1,5 gang av høyden til boksen. Animasjonen gis navnet jump_up. Prøv programmet. Hopper strekmannen? Vi trenger nå en animasjon som gjør at strekmannen kommer ned til bakken igjen. Lag funksjonen back_down() : def back_down(): animate(stick_man, 'accelerate', duration=0.4, bottom=height) Forstår du hva koden skal animere? Sett verdien jump_up.on_finished til back_down. back_down() vil da kjøres når opp-animasjonen er ferdig: jump_up.on_finished = back_down Tips Dette er en skisse på hvordan koden din skal se ut: def on_key_up(key): if ("key er space" and "strekmannen er på bakken"): # Animasjon oppover # Når animasjon oppover er ferdig, animer ned def back_down(): # Animasjon ned Steg 6: Poeng Vi skal nå gi poeng ettersom hvor mange bokser vi klarer å hoppe over. Vi trenger to variabler, en for poeng og en for å huske om strekmannen har blitt truffet av boksen. Lag en variabel som heter SCORE og gi den verdien 0. Lag variabelen stick_man.hit og gi den verdien False. Inne i update(), bestem at av du skal bruke den globale variablen SCORE : def update(): global SCORE # resten av din kode Hvis strekmannen blir truffet, sett SCORE = 0 og stick_man.hit = True.

Øk poengsummen med 10 poeng hvis boksen er ute av bildet og strekmannen ikke er truffet. Før boksen flyttes til høyre side, nullstill stick_man.hit til False. Tegn poengsummen på skjermen inni draw() : screen.draw.text("poeng: " + str(score), (400, 30), color = (0, 0, 0)) Test spillet ditt Utfordringer: Endre hastigheten på boksen. Endre høyden på hoppet. Endre hvor lang tid et hopp tar. Finn en kombinasjon av boksens hastighet og strekmannens hopp slik at spillet er akkurat passe vanskelig. Øk hastigheten på boksen når man har fått 100 poeng. Øk poengsummen med 20 når man har fått 100 poeng. Gi boksen forskjellig høyde for hver gang. Gi boksen forskjellig bredde for hver gang. Send flere bokser inn på skjermen samtidig. Send flere bokser med ulik hastighet inn på skjermen samtidig. Dine egne ideer? Lisens: CC BY-SA 4.0