4532 Astroids

Gör något som liknar:

Projektet Astroids på GitHurb

Förslag på arbetsordning, samt tips.

Rocket

Klassen Rocket på GitHub.

A - sväng vänster D - sväng höger W - kör motor framåt rb.AddForce(transform.right) Space - skjut (Vänta lite med den.)

Åker utanför bild => ...

Om rymdskeppet åker utanför bild till höger kommer det in på samma höjd till vänster.

På motsvarande vis om det åker ut till vänster, över eller under bild.

Använd rigidbody2d.position för att läsa och ändra position, se exempel nedan.

Jag har en objektvariabel rb som är min rigidbody2d.

// flytta till y = 500, men samma x
rb.position = new Vector2(rb.position.x, 500);

Kamerans halva höjd kan läsas med:

// camera center to top of screen in world coordinates
Camera.main.orthographicSize;

Kamerans halva bredd fås genom att multiplicera ovanstående med:

Camera.main.aspect;

Motor på => byt bild

Växla bild då motorn är på, det vill säga när space (sv. mellanslag) är nedtryckt.

Skott - Bullet

Gör så att det går att skjuta.

Skotten åker runt på samma vis som Rocket, det vill säga om ett skott åker ut till höger så kommer det in på samma höjd till vänster.

Rocket exploderar om det blir träffat av ett skott. Använd bild för att visa explosionen.

Stjärnhimmel

Tillverka en stjärnhimmel.

Klassen Space på GitHub

Gör ett Empty GameObject. Döp det till Space. Lägg till skriptet Space på GameObject:et Space.

Sätt dess position z till 1 så att den hamnar bakom Rocket.

Vad gör Klassen Space?

läs kamerans bredd och höjd
skapa en Texture2D som är så stor
fyll den med svart färg
upprepa t.ex. 5000 gånger
  slumpa en koordinat
  lägg till en stjärna där
  stjärnan är en pixel med slumpmässig färg

gör Texture2D till en sprite och visa den på GameObject:et Space

Rock

Föremål i rymden som ska undvikas. Lägg in några på slumpmässig position. Låt dem röra sig långsamt.

När de åker utanför bild så dyker de upp på motsatt sida precis som Rock och Bullet gör.

Dör vid kollision.

Eller 3 liv som minskas vid kollision och sedan Game Over.

Kan skjutas sönder om man träffar det tillräckligt många gånger, t.ex. fyra gånger.

När det går sönder bildas två hälften så stora stenar (Rock). Det räcker att träffa en mindre sten två gånger för att den ska falla sönder i sin tur. De nya bitarna behöver träffas en gång innan de tas bort ur spelet.

Nybildade par av stenar rör sig åt var sitt håll.

Poäng

Förstörda Rock ger poäng.

Utöka spelet

  • Kan plocka saker som ger liv tillbaka
  • Om man skjuter sönder ett visst antal stenar på en viss tid så får man en skyddssköld som vara en viss tid. Skölden klarar dock bara en kollision.
  • Dyker upp fler och fler Rock.
  • Andra rymdskepp som skjuter.