4530 crab

Be din lärare demonstrera hur spelet skrivs steg för steg.

Hela projektet på GitHub. Ladda inte ner men kolla här vid behov.

Ett nytt 2D-projekt i Unity Hub

Döp projektet till Crab.

Lägg till mappar

Lägg till följande mappar för att det ska bli ordning och reda.

  • Scripts
  • Sprites
  • Prefabs

Lägg till bilder

Lägg in bilder i mappen Sprites.

Bilder på GitHub Ta bara *.png inte *.png.meta.

Script - Crab

I mappen Scripts högerklicka och välj: Create -> C# Script.

Döp scriptet till Crab.

Game Object - Crab

Dra in bilden crab2.png till Scene.

I Inspector väljs Add Component:

  • Physics 2D -> Rigidbody 2D
  • Physics 2D -> Capsule Collider 2D Ändra formen till Horizontal och storleken så att den ringar in krabban.
  • Script -> Crab (Det som du skapade ovan.)

Högst upp i Inspector visas spelobjektets namn ändra det till Crab (från crab2).

Kod

Dubbelklicka på scriptet Crab.

Klistra in kod från GitHub

Starta spelet och flytta på krabban på följande vis.

  • S - Gå framåt
  • S och A - gå framåt och sväng vänster
  • D och A - gå framåt och sväng höger

Game Object - Worm

Dra in bilden worm.png på Scene.

Lägg till Capsule Collider 2D. Anpassa storleken så att den passar masken.

Prefab

Dra Worm från Hierarchy till mappen Prefabs i Project-view.

Dra in några Worm from mappen Prefabs och lägg dem i Scene.

Nu finns det flera maskar som krabban kan äta.

Script - Crab

Krabban äter maskar.

Lägg till följande kod efter metoden Update.

private void OnCollisionEnter2D(Collision2D collision)
{
  if (collision.gameObject.name.StartsWith("Worm"))
  {
    Destroy(collision.gameObject);
  }
}

Vägg runt om

För att förhindra att krabban går utanför bild kan man göra på följande vis.

Klicka: Game Object -> Create Empty

Lägg till en Box Collider 2D. Ändra på dess storlek och placering så att den ligger under fönstret.

Kopiera och gör så att det blir en vägg på var sida om fönstret som kameran visar. En vägg över, en under, till vänster och en till höger om det kameran visar.

Poäng

Klicka Game Object -> UI -> Text

Döp den till ScoreDisplay.

Lägg till följande rad kod i Crab.cs

public GameObject scoreDisplay;

Lägg den efter raden

private float speed = 4;

För mer instruktioner följ länk.

I klassen Crab läggs följande till:

private int score = 0;

Det är en variabel för att spara poängen.

I if-satsen i metoden OnCollisionEnter2D läggs koden:

score = score + 1;
scoreDisplay.text = "Score: " + score;

Fara - humrar

Gör ett Game Object Lobster. Lägg till komponenter. Kan du lista ut vilka som krävs?

Förslag på script hittar du här Men byt namn på klassen till Lobster.

Gör det till en prefab.

Lägg till tre humrar i Scene.

Kan du ändra så att en hummer kan äta upp krabban?

Förslag på fortsättning

Tre liv

Game over visas

Maskarna rör sig

Lägg till hinder

Lägg till gömställen för krabban, dit inte hummern kan gå.

Bakgrundsbild

Animera rörelsen.

Växla mellan två bilder på krabban.