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

Like dokumenter
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

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

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

Verden. Steg 1: Vinduet. Introduksjon

Tegnespillet. Introduksjon:

Uendelig bakke. Introduksjon. Skrevet av: Kine Gjerstad Eide

Steg 1: Lag bildedeklarasjon

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

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

Kodetime for Nordstrand barneskole

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

Sprettende ball Introduksjon Processing PDF

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

Kanter, kanter, mange mangekanter

Løpende strekmann Erfaren Videregående Python PDF

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

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

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

Farger. Introduksjon. Skrevet av: Sigmund Hansen

Steg 1: Tekst på flere linjer

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

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

Steg 0: Installere Pygame Zero

Farger Introduksjon Processing PDF

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

Steg 1: Bli kjent med spillet

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

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

Steg 1: Hvordan styre figurer med piltastene

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

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

Steg 1: Installere programvaren

PXT: Micro:bit repeater

Steg 1: Piler og knappetrykk

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

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

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

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

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

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.

Visuell Programmering: Kom i gang med Processing

Steg 1: Katten og fotballbanen

Steg 1: Canvas-elementet

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

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

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

Tegneprogram Journeyman Scratch PDF

Steg 1: Vi starter fra toppen

I dag skal vi lage et nyttig spill, nemlig et spill som hjelper oss å lære andre ting. Vi skal få hjelp til å lære gangetabellen!

Steg 1: Få Flakse til å falle

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

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

PXT: Flasketuten peker på

Steg 1: Hente grafikk fra nettet

PXT: Hermegåsa. Introduksjon. Skrevet av: Felix Bjerke og Tjerand Silde

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

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

Forberedelser: Last ned bildefiler

King Kong Erfaren Scratch PDF

Bursdag i Antarktis. Introduksjon. Steg 1: En katt på villspor. Sjekkliste. Skrevet av: Caroline Tandberg

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

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

Mattespill Nybegynner Python PDF

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

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

Blinkende lysdiode Introduksjon Arduino Lærerveiledning

JS: Grunnleggende JavaScript

Snøballkrig Ekspert Scratch Lærerveiledning

Hvor i All Verden? Del 3 Erfaren Scratch PDF

Skilpaddekunst. Introduksjon. Skrevet av: Geir Arne Hjelle

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

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

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

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

Sprettball Erfaren ComputerCraft PDF

Steg 1: Lag en figur som bytter drakt

Bursdag i Antarktis Nybegynner Scratch PDF

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

Gangemesteren Nybegynner Scratch PDF

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

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

PGZ - Hangman Ekspert Python Lærerveiledning

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

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

Steg 1: Animasjons-attributtet

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

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

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

JS: Grunnleggende JavaScript Nybegynner

Steg 1: Felix følger musepekeren

Flaksefugl Nybegynner Scratch Lærerveiledning

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

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

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

PXT: Spå fremtiden med bilder

Steg 1: Endre bakgrunn og finne figurer

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

Steg 1: Hvordan fungerer spillet?

Transkript:

Tetris Skrevet av: Kine Gjerstad Eide Kurs: Processing Introduksjon Lag starten på ditt eget tetris spill! 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. Slik vil det se ut når du er ferdig med oppgava:

Steg 1: Lag dine første to metoder For hvert steg kommer det forklaring med eksempel og på slutten av steget kommer et bilde av hele koden. Bruk bildet av koden dersom du trenger det, men forsøk å skriv koden på egenhånd ved hjelp av forklaringen først. Første gjøremål La oss starte med å sette opp et vanlig vindu, dersom du ikke har åpna Processing, så må du gjøre det nå. Lagre programmet ditt, dette gjør du ved å velge File og deretter Save As. Det anbefales at du gir koden din et navn som har noe med spillet å gjøre, slik at det er lett å finne igjen. Det er også lurt å lagre koden på et sted som er lett å huske. Processing er en kodeeditor, det betyr at du kan skrive kode i den. Den første koden du skal skrive er en kodesnutt med to metoder. En metode ser ut slik som dette: void setup(){ Denne metoden heter setup. Alt som skrives inni metoden med navn setup skjer én gang når programmet starter, mens det som står inni draw skjer på nytt og på nytt helt til programmet avsluttes. Forsøk å skrive begge metodene selv. De to metodene skal være helt like bortsett fra navnet. Nå må du kjøre koden for å sjekke at metodene fungerer. For å kjøre koden trykker du på play-knappen opp til venstre i Proccesing programmet. Dersom all koden din er riktig skal du få opp et lite vindu som ser slik ut:

Her er hele koden slik den skal se ut nå: void setup(){ void draw(){ Dobbelsjekk at du har skrevet alt riktig før du går videre. Steg 2: Vindustørrelse Nå skal du bestemme størrelsen på vinduet, det gjør du ved å bruke en metode som noen allerede har skrevet ferdig. Når vi bruker en metode, så skriver vi navnet på metoden, deretter må vi ha parenteser, og til sist legger vi til semikolon. Når man bruker en metode som allerede er ferdigskrevet, så sier man at man kaller på en metode. Her er et eksempel som kaller på metoden med navn size : size(); Mellom parentesene må man ofte sette inn informasjon, dette kalles parameter. Parameterne som må oppgis når man setter størrelsen på et vindu er rett og slett hvor stort vinduet skal være. Hvis metoden trenger flere parametre, bruker man komma, for å skille de: size(100, 200); I eksempelet over er 100 og 200 parametre.

Parametrene som bestemmer størrelsen på vinduet er oppgitt i piksler, så det kommer litt ann på skjermen din hvor mange piksler du ønsker at vinduet skal være. Prøv for eksempel med 600 og 900, og så kan du endre ett og ett tall helt til du får et vindu som du synes har riktig størrelse. Slik kaller du på metoden som bestemmer størrelsen på vinduet: size(600, 900); Denne kodelinja må skrives inni setup, det betyr mellom de to krøllparentesene { og som står etter setup(). Hvor mange parametre? Når man kaller på en metode er det ikke alltid man vet nøyaktig hvilke parametre som skal legges ved. Da kan man enten se i manualen (https://processing.org/reference/), søke etter svaret på internett, eller gjøre et metodekall uten parametre. Gjør du sistnevnte, vil du få opp en feilmelding nederst på skjermen. Feilmeldingen forteller hvor mange og hvilken type parametre som skal skrives mellom parentesene ( og ). Hvert parameter skilles av kommategn. Lag et vindu som er kvadratisk (like høyt som bredt). Lag et vindu som når helt fra høyre til venstre side av skjermen din. Lag et vindu som er ca. like stort som et russekort. Lag et vindu som du synes er passelig for å spille tetris i. Steg 3: Bakgrunnsfarge

På samme måte som size så er det også en ferdigskrevet metode som kan bestemme bakgrunnsfarge. Denne heter background og trenger enten ett eller tre parametre for å fungere. Alle parameterne må være heltall, eller int som det heter når man programerer. Tallene som brukes i background må være mellom 0 og 255. Tallene bestemmer hvor sterk lyspærene inni pc-skjermen skal lyse. Hvorfor heter det int? Heltall er tall som skrives uten komma, slik som 3, 110 og 77. Heltall heter på engelsk integer. int er altså en forkortelse for integer som betyr heltall. Dersom man bare har en parameter, så får man hvit farge ved å skrive 255, svart ved å skrive 0. Hva tror du det blir for 128? Hva med 200? Her er et eksempel: background(70); Når du bruker tre tall, kaller vi det RGB-farger. RGB står for rød, grønn og blå. Her er et eksempel: background(20, 255, 170); Det betyr at det første tallet 20 bestemmer styrken på det røde lyset, det andre 255 på det grønne og det siste 170 på det blå. Ved å endre RGB-tallene kan man blande akkurat den fargen man ønsker. Husk å avslutt linjen med semikolon. background skal slik som size også inni setup -metoden. Test med å først bare ha ett tall inni parentesen og endre på tallet, hva får du? Endre tallet minst 4 ganger og sjekk hvilken farge du får. Få bakgrunnsfargen til å bli svart. Få bakgrunnsfargen til å bli helt lysegrå. Få bakgrunnsfargen til å bli hvit.

Prøv å sett inn tre forskjellige tall, og så endrer du på ett og ett av disse, hva skjer? Hvilken farge får du dersom alle parametrene til background er 0? Hvilken farge får du dersom alle parametrene til background er 255? Få bakgrunnsfargen til å bli rød. Få bakgrunnsfargen til å bli gul. Prøv tilfeldige tall og se hvilken farge du får. Finn en bakgrunnsfarge du liker og gå til neste steg. Her er et bilde av hvordan koden din skal se ut nå. Husk at du sikkert har funnet litt andre tall enn vi har. int posisjony; void setup(){ size(600, 900); background(20, 255, 170); void draw(){ Steg 4: Lag en firkant Nå skal du lage firkanten som senere skal falle over skjermen. For å lage en firkant bruker vi metodekallet rect. Dette trenger fire parameter, som bestemmer hvor firkanten skal plasseres og hvor stor den skal være. Metodekallet på rect skal du skrive inni draw -metoden. Start for eksempel med disse tallene:

rect(275, 10, 50, 50); Endre de forskjellige tallene slik at du finner ut hva de står for. Endre plassering og størrelse til firkanten slik at den når fra toppen til bunnen av vinduet ditt. Tegn firkanten slik at den står midt i vinduet. La firkanten dekke hele vinduet. Hint: Du kan bruke minus foran tallene. Steg 5: Gi firkanten farge Nå skal du sette en farge på firkanten ved å gjøre et metodekall på fill. fill tar tre parameter, slik som background, men den fargelegger figurer i stedet for hele bakgrunnen. Denne må skrives inni draw og den må stå på linja over firkanten. Førsøk å gjøre firkanten lilla. Gi firkanten en farge du liker. Her er vår kode så langt, husk at du sikkert har valgt andre parametre.

void setup(){ size(600, 900); background(20, 255, 170); void draw(){ fill(255); rect(275, 10, 50, 50); Steg 6: Lag en variabel For å få firkanten til å falle må vi gjøre to ting. Vi må opprette en variabel som endrer seg og så må vi bruke variabelen i firkanten. Forklaring av variabel En variabel er noe som kan endre seg. Vi vil jo gjerne at firkanten skal bevege seg nedover skjermen, altså at firkanten skal endre posisjonen. Dette gjør vi ved å putte inn en variabel i stedet for tallet som bestemmer posisjonen til firkanten. I den virkelige verden finnes det også variabler som man må endre og så har vi andre tall som alltid er de samme. For eksempel i en håndballkamp har man mange tall. Alle spillerne har sitt eget nummer på drakta. Ingen av spillerne skal bytte nummer under kampen, så derfor er nummeret trykt rett på skjorta. Det er også tall som viser hva stillingen i kampen er. Dette er ofte vist på ei svær tavle. Her endres tallene. Det hadde ikke fungert å trykke stillingen på ei skjorte før kampen. Derfor har de laget tavler, slik at stillingen kan oppdateres etterhvert som lagene får poeng. På samme måte, så lager vi variabler i programmering, slik at vi kan oppdatere de etterhvert som noe skjer i programmet. Alle variabler har sitt eget navn, slik som poeng, liv, fart eller lignende. Når de skal oppdateres, skriver vi for eksempel: liv = 2. For å lage en variabel, må vi først sette av plass i minnet til PC-en, slik at den tar vare på et tall. Da trenger ikke PC-en å vite hva tallet er, men den har satt av plassen slik at det er ledig når vi begynner å bruke det. Når vi skal lage en variabel i Processing, så må vi si hvilken datatype variabelen skal inneholde. Eksempler på datatyper kan være int for heltall, float for desimaltall, eller String for tekst.

Vi starter med å sette av plass i minnet, det heter å deklarere, eller opprette variabelen. Typen skal være int. Vi må gi et navn til variabelen, vi har valgt posisjony, men du kan velge hvilket navn du ønsker. Kodelinja ser slik ut og skal stå over setup -metoden: int posisjony; Så skal vi bestemme hva posisjony skal være når vi starter programmet, det skriver vi inni setup -metoden. Kodelinja skal se slik ut (husk at dersom du må bruke samme navn som på forrige kodelinje): posisjony = 20; Så putter vi variabelen inn i firkanten vår. Det er argument nummer to som må byttes ut, og kodelinja hvor vi skriver firkanten ser slik ut: rect(275, posisjony, 50, 50); og sjekk at dette fungerer før du fortsetter med steg 7 under. Bytt ut 20 med for eksempen 200 i setup -metoden der du skriver hva posisjony skal være. Hva skjer? Sett posisjony til tallet som får firkanten til å bli plassert helt på bunn av vinduet. Plasser firkanten så langt opp at du bare ser bunnen av firkanten. Hint: Du kan bruke negative tall. Her er koden så langt.

int posisjony; void setup(){ size(600, 900); background(20, 255, 170); posisjony = 20; void draw(){ fill(255); rect(275, posisjony, 50, 50); Steg 7: Beveg firkanten Nå må vi få firkanten til å bevege seg. Som vi skrev helt til å begynne med, så fungerer draw metoden slik at den repeteres. All koden inni draw blir lest gjennom fra toppen og til bunn. Når programmet er kommet til bunn av draw, da bare hopper det opp til starten og leser gjennom koden en gang til. Dette skjer helt til vi avslutter programmet. For å få firkanten til å endre seg, så må vi oppdatere posisjony. Det gjør vi ved å skrive dette inni draw -metoden: posisjony = posisjony + 1; For hver gang programmet leser denne linja, så endrer den posisjon til å bli det samme som det den allerede er, pluss en. Det betyr at dersom posisjonen er 20, så vil den bli til 20 + 1 = 21 neste gang, og så 21 + 1 = 22 gangen etter og slik fortsetter det. Når man bruker ett = tegn i koding, så betyr det at man gir noe en verdi, ikke at tallene på begge sider av = tenget er det samme. Kjør programmet og sjekk at firkanten faller. Hvorfor tror du det blir tegna en stripe over skjermen? Hva skjer om du setter + 10 i stedet for + 1 når du endrer posisjony? La endringen i posisjony være større en høyden på firkanten. Hva skjer da?

Finn en fart firkanten kan falle i som du synes er passelig. Her er hele koden så langt: int posisjony; void setup(){ size(600, 900); background(20, 255, 170); posisjony = 20; void draw(){ fill(255); rect(275, posisjony, 50, 50); posisjony = posisjony + 1; Steg 8: Fjerne stripa som firkanten lager Grunnen til at det blir tegna en stripe over skjermen er fordi bakgrunnsfargen i vinduet bare blir tegna en gang i setup -metoden. For å få det til å se ut som firkanten faller må metodekallet background bli flytta inn i draw metoden. Det er vanlig å kalle på background helt først i draw metoden. Flytt kallet på background frem og tilbake fra draw til setup noen ganger og vær sikker på at du forstår hva som skjer. Kall på background øverst i draw -metoden. Her er hele koden:

int posisjony; void setup(){ size(600, 900); posisjony = 20; void draw(){ background(20, 255, 170); fill(255); rect(275, posisjony, 50, 50); posisjony = posisjony + 1; Lisens: CC BY-SA 4.0 (http://creativecommons.org/licenses/by-sa/4.0/deed)