4511 Faror med MovePosition

Använd MovePostion i FixedUpdate inte i Update.

// pseudokod
rb.MovePosition(targetPositionVector2)

Metoden MovePosition flyttar objektet till angiven position.

Projekt

Kod för projektet på GitHub

Klasser - script

Game

Placerar väggar samt spelare och monster.

Koden för Game på GitHub

Koncept

// pseudokod
Instantiate(brickPrefab, position3, rotation)

Metoden Instantiate anropas för att lägga till ett väggelement (brick).

Troll

Troll går framåt tills det når ett hinder. En ny riktning slumpas.

Kod för Troll på GitHub

Koncept

void FixedUpdate()

Metoden FixedUpdate anropas varje gång som fysikmotorn gör uppdateringar.

GetComponent<Rigidbody2D>()

Metodanropet ovan hämtar Trollets Rigidbody2D.

private void OnCollisionEnter2D(Collision2D collision)

Metoden ovan anropas då Trollets Collider2D kolliderar (delvis överlappar) en annan Collider2D. Nästan hela sanningen. Annars läs mer om triggers och metoden OnTriggerEnter2D.

private void OnCollisionStay2D(Collision2D collision)

Metoden ovan anropas på samma vis som OnCollisionEnter2D men de kollisionen kvarstår mer än en "frame" (bildruta i filmen).

Elf

Elf flyttar framåt tills den når ett hinder. Den väljer en ny riktning som det går att flytta i direkt. Alltså inget hinder nära i den riktningen.

Kod för Elf på GitHub

Koncept

Random.Range(1, 7);

Klassen Random innehåller den statiska metoden Range som ger slumptal i givet intervall.

// pseudokod
RaycastHit2D hit;
hit = Physics2D.Raycast(start, direction, length);

hit innehåller information om det första objektet (collider2D) som finns i angiven riktning.

hit.transform;

transform innehåller position och rotation på Elf- objektet.

Gargoyle - player

Gargoyle är spelaren och flyttas med w a s d. Kod för Gargoyle på GitHub

Koncept

Input.GetKey(KeyCode.A)

Koden ovan är sann om bokstaven A hålls ner.

Phonix

Phonix går mot Gargoyle. Kod för Phonix på GitHub

Koncept

GameObject.FindWithTag("Gargoyle")

Koden hittar GameObject i scene som har taggen Gargoyle.