Rull-en-ball Introduksjon Unity PDF

Like dokumenter
Løpende strekmann Erfaren Videregående Python PDF

Sprettende ball Introduksjon Processing PDF

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

Skilpaddefraktaler Erfaren Python PDF

Steg 1: Hvordan styre figurer med piltastene

Uendelig bakke. Introduksjon. Skrevet av: Kine Gjerstad Eide

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

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

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

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

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

Tegneprogram Journeyman Scratch PDF

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

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

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

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

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

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

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

Felix og Herbert Introduksjon Scratch PDF

Labyrint Introduksjon Scratch Lærerveiledning. Steg 1: Hvordan styre figurer med piltastene

Enarmet banditt Nybegynner Scratch Lærerveiledning

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

Snake Expert Scratch PDF

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

Hvor i All Verden? Del 3 Erfaren Scratch 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

Spøkelsesjakten. Introduksjon

Sprettball Erfaren ComputerCraft PDF

Hei verden Introduksjon Swift PDF

Verden. Steg 1: Vinduet. Introduksjon

Felix og Herbert. Felix og Herbert. Introduksjon

Snøballkrig Ekspert Scratch Lærerveiledning

Tegnespillet. Introduksjon:

Husk at du skal ha to vinduer åpne. Det ene er 'Python Shell' og det andre er for å skrive kode i.

Flaksefugl Nybegynner Scratch Lærerveiledning

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

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

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

Bli Kjent med Datamaskinen Introduksjon ComputerCraft PDF

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

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

Steg 0: Installere Pygame Zero

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

Flaksefugl. Introduksjon. Level

PXT: Flasketuten peker på

TDT4100 Objektorientert programmering

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

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

Komme igang med App Inventor Introduksjon App Inventor PDF

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

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

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

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.

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

Hvor i All Verden? Del 2 Erfaren Scratch PDF

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

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

Steg 1: Katten og fotballbanen

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

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

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

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

3D-Flakser, Del 1 Ekspert Scratch PDF

Steg 1: Hvordan fungerer spillet?

Bursdag i Antarktis Nybegynner Scratch PDF

1. Rullende navn, s 3 2. Smilefjes, s 5 3. Skritteller, s 7 4. Orakel, s 9 5. Stein, saks og papir, s Kompass, s 14

Skilpadder Introduksjon Python PDF

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

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

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

Steg 1: Få Flakse til å falle

Communicate SymWriter: R5. Brett og knapper

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

Steg 1: Piler og knappetrykk

King Kong Erfaren Scratch PDF

Steg 1: Lag et flyvende spøkelse

Kodetime for Nordstrand barneskole

PXT: Hermegåsa. Steg 1: Sjekk at du har riktig utstyr. Sjekkliste. Introduksjon

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

Robotinvasjon Introduksjon ComputerCraft PDF

Steg 1: Bli kjent med spillet

1) Sørg for at du fortsatt er i eventredigeringsmodus (klikk F6 på tastaturet, eller velg ikonet med en person fra menylinjen).

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

Begge metodene har som utgangspunkt at du har lagt inn et ortofoto av feltet eller en skannet tegning i Intrasisprosjektet eller ArcMap-fila.

Side 1 av 12

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

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

Steg 1: Husker du skilpadden?

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

Hvordan lage et sammensatt buevindu med sprosser?

Steg 1: Lag en figur som bytter drakt

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

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.

CSS: Animasjon Nybegynner

Farger Introduksjon Processing PDF

Transkript:

Rull-en-ball Introduksjon Unity PDF Rull-en-ball Denne uka skal vi lage vårt første spill! Spillet går ut på å være en ball og samle inn kuber for å få poeng. Spillet er over når man har samlet inn alle kubene. Denne oppgaven tar utgangspunkt i Roll-a-Ball på Unity sine sider. Titlene i denne oppgaven er lenket direkte til videoene på Unity sine sider der det er aktuelt. Du finner også lenker til alle videoene på unity3d.com/learn/tutorials/projects/roll-ball-tutorial. Steg 1: Omgivelser og spilleren Introduksjon Bildet nedenfor viser hvordan spillet ser ut når man er ferdig! I denne oppgaven lærer vi litt enkel fysikk, hvordan vi kan flytte spillobjekter med tastaturet, og kollisjon mellom objekter. Oppsett av spillet Start med å lage et nytt 3D-prosjekt. Lagre Scenen, File > Save Scene, legg den i en ny mappe Assets/_Scenes og kall den Minigame. Lag brettet vi skal spille på. Dette er et 3D-plan. Du finner den i hierarkiet under Create > 3D Objekt > Plane. Kall dette objektet Ground. Flytt brettet til origo, (0, 0, 0), ved å trykke på tannhjulet i Transform-komponenten og velge Reset. Skru av Grid-lines på Scenen. Dette finner du under Gizmos > Show Grid. Lag bakken litt større. Dette kan du gjøre med å dra på pilene eller skrive det manuelt inn på høyresida. Vi setter Scale til 2 på x, 1 på y og 2 på z. Lag en spiller! Fra hierarkiet Create > 3D Object > Sphere og gi den navnet Player. Tilbakestill posisjonen på samme

måte som vi gjorde med planet. Flytt ballen opp 0.5 enhet slik at vi får den til å ligge på planet. Husk at ballen er 1 høy og 1 bred. Husk at det er y- posisjonen vi endrer med 0.5. La oss bytte farge på brettet. Vi lager en ny mappe i Assets-mappa vår og gir den navnet Materials. Velg denne mappa og lag et nytt material og kall den Background. Endre farge ved å trykke på den hvite boksen til høyre for Albedo -feltet og velg en fin blåfarge. Du kan bruke RGB-verdien (0, 32, 64). Lag brettet blått ved å dra Background -materialet til brettet i Scenen. For å få bedre lys i spillet kan vi endre rotasjonen på lyset i hierarkiet vårt. Endre rotasjon på y-aksen til 60. Bevege spilleren Siden vi vil at ballen skal rulle rundt på brettet, kollidere i vegger og treffe forskjellige objekter for å samle poeng trenger vi litt fysikk. Dette får vi ved å legge til en Rigidbody-komponent på Player -objektet. Trykk på Add Component når du har valgt spilleren og velg Physics > Rigidbody. Lag en ny mappe Assets/Scripts og et nytt C#-script som vi kaller PlayerController. Koden vi skal legge inn der er det best å skrive selv. Siden noen av dere jobber hjemmefra legger vi inn hele kodesnutten under. Ikke kopier den, men skriv inn alle linjene! PlayerController.cs using UnityEngine; public class PlayerController : MonoBehaviour public float speed = 10.0f; private Rigidbody rb; rb = GetComponent<Rigidbody>(); void FixedUpdate () float movehorizontal = Input.GetAxis ("Horizontal"); float movevertical = Input.GetAxis ("Vertical"); Vector3 movement = new Vector3 (movehorizontal, 0.0f, movevertical); rb.addforce (movement * speed); Siden vi vil at scriptet skal styre ballen må vi dra det inn på Player -objektet. Trykk på piltastene, flytter ballen seg? Hva skjer hvis du prøver å styre med tastene WASD?

Steg 2: Kamera og spilleområde Flytte kameraet Flytt først kameraet opp 10 enheter (på y-aksen) og vipp det ned med 45 grader (x-aksen). Flytt kameraet til et barn av Player -objektet, dette vil gjøre at kameraet følger etter spilleren. Et barn er et programmeringsbegrep som betyr at noe er under noe annet, f.eks. en undermappe. Du gjør kameraet til et barn av Player -objektet ved å dra det og slippe det på Player -objektet i hierarkiet. Se at kameraet (nesten) flytter seg med spilleren. og se hva som skjer. Siden ikke alt gikk etter planen må vi lage et script for å flytte kameraet. Flytt kameraet tilbake ut av Player -objektet slik at det ikke snurrer rundt lengre. Lag et nytt C#-script som du kaller CameraController og legg til koden: CameraController.cs using UnityEngine; public class CameraController : MonoBehaviour public GameObject player; private Vector3 offset; offset = transform.position - player.transform.position; void LateUpdate () transform.position = player.transform.position + offset; Dra scriptet over til kameraet og med kameraet valgt dra Player -objektet til Player-referansen på høyresida. Flytt ballen og se at kameraet følger etter den. Sette opp spilleområdet La oss lage noen vegger! Lag et nytt tomt objekt som du kaller Walls. Create > Create Empty. Dette blir en mappe for alle veggene. Tilbakestill posisjonen til Walls til (0, 0, 0). Lag første vegg. Create > 3D Object > Cube og tilbakestill posisjonen til denne. Sjekk at ballen havner oppi denne kuben. Legg denne som et barn av Walls og kall den West Wall.

Lag veggen lang og tynn. Under Scale setter vi 0.5, 2 og 20.5. Flytt veggen til siden ved å sette x til -10. Dupliser veggen vi har og kall den East Wall. Endre x-posisjon til 10 og se at den kommer på plass. Dupliser East Wall og kall den North Wall. Tilbakestill posisjonen og sett scale til 20.5, 2, 0.5. Sett posisjon på z-aksen til 10 for å se at den kommer på riktig plass. Dipliser North Wall og kall den South Wall. Sett posisjon på z-aksen til -10. Prøv spillet og se at veggene er på plass. Steg 3: Samle objekter og poeng Lag objekter vi kan samle inn Lag en kube vi kan samle inn. Create > 3D Object > Cube og kall den Pick Up. Tilbakestill posisjonen og se at ballen havner inni denne kuben. Deaktiver Player -objektet. Flytt opp kuben med 0.5 enheter og sett scale til 0.5 i alle aksene. La oss tippe den litt over. Endre rotasjon til 45 på alle aksene. La oss få kuben til å snurre litt for å tiltrekke oppmerksomhet. Lag et nytt C#-script og kall det Rotator. Legg til koden: Rotator.cs using UnityEngine; public class Rotator : MonoBehaviour void Update () transform.rotate (new Vector3 (15, 30, 45) * Time.deltaTime); Start spillet og se at kuben snurrer rundt. Husk å legge til scriptet i Pick Up -objektet. Siden vi trenger mange kuber må vi gjøre Pick Up -objektet om til en Prefab. En Prefab er en slags skisse for hvordan et spillobjekt skal se ut og oppføre seg. Lag en ny mappe og kall den Prefabs. Dra Pick Up -objektet inn i denne mappa. Lag en nytt tomt objekt for å organisere objektene våre. Kall dette Pick Ups og legg Pick Up til her.

Endre synsvinkel til rett over spillebrettet og lag 10 nye kuber ved å duplisere Pick Up -objektet vi har. Legg kubene rundt omkring på brettet. Start spillet og se at alle kubene snurrer. La oss endre fargen på kubene! Dupliser Background -materialet og kall det Pick Up. velg en fin gulfarge under Albedo og dra den ned på Pick Up -prefaben. Start spillet og se at alle kubene er gule og snurrer rundt! Samle inn objekter Vis spilleren igjen. Legg merke til at Player -objektet har en Sphere Collider-komponent. Denne skal vi bruke til å sjekke kollisjon mot Pick Up -objektene. Åpne PlayerController -scriptet igjen og legg til funksjonen under i PlayerController-klassen: void OnTriggerEnter(Collider other) if (other.gameobject.comparetag ("Pick Up")) other.gameobject.setactive (false); Velg Pick Up -prefaben og legg til en ny Tag vi kaller Pick Up. Det er veldig viktig at den heter Pick Up. Husk store bokstaver på P og U! Prøv spillet og se hva som skjer. For å hindre at Unity lager en kollisjon mellom ballen og kubene må vi krysse for Is trigger? på Box Collider - komponenten til Pick Up -prefaben. Dette gjør at Unity registrerer at de to objektene har kollidert, men den flytter ikke på noen av objektene. og se at alt er som det skal! (BONUS) For å gjøre en liten optimisering kan vi legge til en Rigidbody-komponent til kubene. Prøv å spille spillet nå. Se at alle kubene faller gjennom gulvet. Dette er fordi vi har satt en Trigger-collider til kubene. Sett Is Kinematic for å fikse dette. Les mer om dette på tutorialen. Vis poengscore Vi trenger noen variabler for å holde styr på hvor mange objekter vi har samlet inn. Åpne PlayerController og endre det til å være som følger: PlayerController.cs

using UnityEngine; using UnityEngine.UI; public class PlayerController : MonoBehaviour public float speed; private Rigidbody rb; public int count; rb = GetComponent<Rigidbody>(); count = 0; void FixedUpdate () float movehorizontal = Input.GetAxis ("Horizontal"); float movevertical = Input.GetAxis ("Vertical"); Vector3 movement = new Vector3 (movehorizontal, 0.0f, movevertical); rb.addforce (movement * speed); void OnTriggerEnter(Collider other) if (other.gameobject.comparetag("pick Up")) other.gameobject.setactive (false); count = count + 1; Sjekk at count endres når vi treffer kubene. Vi trenger noe på skjermen som viser poengene våre. Under hierarkiet, lag et nytt Text -objekt (Create > UI > Text). Gi objektet navnet CountText. Endre farge på teksten til hvit og endre posisjon til (0, 0, 0). Størrelsen til CountText skal være 160 bred og 30 høy. Endre teksten som står der til Count Text. Flytt teksten øverst til venstre. Trykk på firkanten inne i Rect Transform og velg top left mens du holder inne shift og alt. Endre Pos X og Pos Y til 10 og -10. Nå vil vi endre denne teksten med PlayerController -scriptet. Åpne det opp og endre det til: PlayerController.cs

using UnityEngine; using UnityEngine.UI; public class PlayerController : MonoBehaviour public float speed; public Text counttext; private Rigidbody rb; private int count; rb = GetComponent<Rigidbody>(); count = 0; SetCountText (); void FixedUpdate () float movehorizontal = Input.GetAxis ("Horizontal"); float movevertical = Input.GetAxis ("Vertical"); Vector3 movement = new Vector3 (movehorizontal, 0.0f, movevertical); rb.addforce (movement * speed); void OnTriggerEnter(Collider other) if (other.gameobject.comparetag("pick Up")) other.gameobject.setactive (false); count = count + 1; SetCountText (); void SetCountText () counttext.text = "Count: " + count.tostring (); Dra CountText inn i Count Text-referansen til Player -objektet. Lagre og test spillet! Lag et nytt UI Text-ojekt og kall det Win Text. Lag teksten hvit, sett skriftstørrelse til 24 og sett den sentrert i midten. Sett teksten til å være Win Text og flytt den litt opp. Pos X skal være 0 og pos Y skal være 10. Lagre og gå tilbake til PlayerController -scriptet. Lag en ny variabel wintext, initialiser den i Start og endre den i SetCountText. Når du har kodet ferdig skal det se slik ut: PlayerController.cs

using UnityEngine; using UnityEngine.UI; public class PlayerController : MonoBehaviour public float speed; public Text counttext; public Text wintext; private Rigidbody rb; private int count; rb = GetComponent<Rigidbody>(); count = 0; SetCountText (); wintext.text = ""; void FixedUpdate () float movehorizontal = Input.GetAxis ("Horizontal"); float movevertical = Input.GetAxis ("Vertical"); Vector3 movement = new Vector3 (movehorizontal, 0.0f, movevertical); rb.addforce (movement * speed); void OnTriggerEnter(Collider other) if (other.gameobject.comparetag("pick Up")) other.gameobject.setactive (false); count = count + 1; SetCountText (); void SetCountText () counttext.text = "Count: " + count.tostring (); if (count >= 12) wintext.text = "You Win!"; Prøv spillet og se hvor fort du klarer å samle inn alle kubene! Utfordring 1: Bygg spillet slik at du kan dele det med vennene dine Akkurat nå er det jo kun du som kan spille spillet ditt. I denne videoen vises det hvordan man kan bygge spillet til

forskjellige platformer, for eksempel Windows eller Mac. Se om du klarer å bygge det slik at du kan dele det med vennene dine! Lisens: Oversatt fra unity3d.com Forfatter: Transkribert og oversatt fra Unity3D Oversetter: Bjørn Fjukstad