Labb 2: Spelplan och spelarboll
Ht1-2
## Syfte
I denna labb ska vi få upp grunderna för vårt spel. För grafiken i kursen ska vi använda
Public Domain-grafiken, [Kenny.nl - abstract-platformer](https://kenney.nl/assets/abstract-platformer)
Sedan ska vi skapa ett litet basscen med en spelare - en boll - (Rigidbody2D) och mark-komponenter (TileMap-baserat som då innefattar StaticBody2D-tiles och objekt) och någon fiende (CharacterBody2D). Vi ska få spelaren att röra sig och använda en Camera2D för att följa spelaren.
Slutligen ska vi se till att om spelaren faller utanför spelet så startar vi om spelet från en given startpunkt.
##Skapa en ny scen som är själva spelscenen.
1. Skapa en Node2D-nod och kalla för spelet.
1. Spara scenen som spelet.tscn
1. Öppna meny.tcsn och skriv om i koden till
`@onready var game_scene = preload("res://spelet.tcsn")`
[Video beskriver hela processen.](#) Följ noggrant.
## Mark och annat i spelet (video nedan)
1. Ladda ner och [packa upp grafiken](https://kenney.nl/assets/abstract-platformer)
1. Packa upp filen och spara i spelprojektet filmap.
1. Öppna spelet.tcsn i Editorn
1. Lägg till en TileMap-nod, och bestäl cellstorlek till 64 och lätt till fysik.
1. Skapa en ny TileSet i inställnignar och läs in grafiken vi laddat ner.
1. Välj sedan ut tiles att lägga till Kollision för.
1. När Collision ska anges för en Tile så kan man använda Grid-snapping för enklare placering, samt slå av den senare.
1. När allt är klart kan vi markera i Tile-map och måla våra banor för hand.
[Video beskriver hela processen.](#) Följ noggrant, Du kan sedan upprepa steg för att få collision på flera Tiles för att kunna göra grafiskt mer intressanta spel.
##Gör en spelare-boll.
I spelet ska vi ha en boll ned en cirkel-kollider. I grafiken från kenny finns både cirkulära och inte helt cirkulär grafik. Vi kan använda vilken grafik vi vill, men själva det fysikaliska betteendet ska vara en boll.
1. Lägg till en RigidBody2D-nod till scenen
1. Döp till bollen
1. Lägg till en CollisionShape2D och välj i inställnignar en CircleCollider2D
1. Lägg till en Sprite under och ställ in för att matcha grafiken.
1. Lägg till en RayCast och förkorta så den kan se nedåt.
1. Lägg till en Camera2D
1. Flytta spelaren i scenen
[Video beskriver hela processen.](#) Följ noggrant.
##Skapa fiender som går fram och tillbaka
Här ska vi skapa en fiende-komponent, en godot-scen för en fiende som går fram och tillbaka när den krockar och sedan placera in den i vår spelvärd.
##Skapa en fiende som följer en bana med viss hastighet
Här ska vi skapa en fiende som följer en utritad väg och går runt, runt på den ...
## Skapa ett spelarscript
Skapa ett script för spelarens beteende och spelarens reaktion med annat i området.
### När labben är klar ska vi ha en spelare som:
1. kan åka runt,
1. har en acceleration och max_hastighet
1. har högre acceleration om bollen vill byta riktning, dvs om man åker åt vänster och trycker för att åka höger
1. Hoppar med en impuls och enbart en gång samt bara om spelaren har kontakt med marken
1. använder linear_damp för att simulera friktion, luftfriktion osv ...
1. Har bounce och studsar därför när den landar
1. Vi har även beteeenden för att fånga om bållen åker utanför scenen och då återakspa bollen på dess ursprungs-position som omstart.
## Redovising av labben
För att bli godkänd på labben ska ni visa att ni genomfört stegen och att det fungerar samt förklara koden och visa att ni förstår.
Labben visas upp för assistent och lämnas in på [inlämningssidan](https://www.ida.liu.se/~TDDE04/handin/inlamning.sv.shtml)
Sidansvarig: infomaster
Senast uppdaterad: 2024-05-02