Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Zufällig Generierte Hindernisse. | Verbessere das Flappy Bird Spiel
Kampfspiel in Unity
course content

Kursinhalt

Kampfspiel in Unity

Kampfspiel in Unity

1. Unity-Animationssystem
2. Spielerverhalten
3. Feindverhalten
4. Spiel Verbessern
5. Verbessere das Flappy Bird Spiel

book
Zufällig Generierte Hindernisse.

Die Obstacle-Klasse verwaltet die Hindernisse im Spiel und sorgt dafür, dass sie sich neu positionieren, sobald sie den Bildschirm verlassen, um ein kontinuierliches Spielerlebnis zu gewährleisten.

Methoden

Start-Methode

private void Start()
{
    lastObject = startingLastObject;
    player = FindAnyObjectByType<PlayerMVT>().transform;
}

Zweck: Initialisiert das letzte Hindernis und findet das Transform des Spielers.

Funktionsweise: lastObject = startingLastObject;: Setzt das lastObject auf das im Inspector angegebene Anfangshindernis; player = FindAnyObjectByType<PlayerMVT>().transform;: Findet das Transform des Spielers mit der Methode FindAnyObjectByType.

OnBecameInvisible-Methode

private void OnBecameInvisible()
{
    if (player == null) return;
    if (transform.position.x >= player.position.x) return;
    if (transform == lastObject) return;

    Vector2 position = transform.position;
    float random = Random.Range(0, 100);

    if (random <= 50)
    {
        position.y = Random.Range(-2, 1);
    }
    else
    {
        position.y = Random.Range(15, 18);
    }

    position.x = lastObject.position.x + Random.Range(6f, 10f);
    transform.position = position;
    lastObject = transform;
}

Zweck: Positioniert das Hindernis neu, wenn es den Bildschirm verlässt und bestimmte Bedingungen erfüllt.

Funktionsweise: Das Skript stellt sicher, dass der Spieler existiert, bevor es fortfährt (if (player == null) return;), prüft, ob das Hindernis hinter dem Spieler positioniert ist (if (transform.position.x >= player.position.x) return;) und verhindert eine wiederholte Neupositionierung desselben Hindernisses (if (transform == lastObject) return;).

Es ermittelt die aktuelle Position des Hindernisses (Vector2 position = transform.position;), generiert eine Zufallszahl (float random = Random.Range(0, 100);) und passt die y-Position des Hindernisses basierend auf der Zufallszahl an.

Anschließend wird die x-Position relativ zum letzten Hindernis aktualisiert (position.x = lastObject.position.x + Random.Range(6f, 10f);) und lastObject auf das aktuelle Hindernis gesetzt (lastObject = transform;).

Zusammenfassung

  • Initialisierung: Setzt das anfängliche letzte Hindernis und sucht den Spieler;
  • Neupositionierung: Wenn ein Hindernis den Bildschirm verlässt und bestimmte Bedingungen erfüllt, wird es in zufälligem Abstand vor dem letzten Hindernis mit zufälliger Höhe neu positioniert;
  • Bedingungen: Stellt sicher, dass Hindernisse nur neu positioniert werden, wenn sie sich hinter dem Spieler befinden und nicht wiederholt dasselbe Hindernis betroffen ist.

Diese Konfiguration ermöglicht einen kontinuierlichen Fluss von Hindernissen im Spiel und sorgt für Herausforderung und Abwechslung für die Spielenden.

question mark

Was bestimmt die neue y-Position des Objekts, wenn es unsichtbar wird und neu positioniert wird?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 3

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

course content

Kursinhalt

Kampfspiel in Unity

Kampfspiel in Unity

1. Unity-Animationssystem
2. Spielerverhalten
3. Feindverhalten
4. Spiel Verbessern
5. Verbessere das Flappy Bird Spiel

book
Zufällig Generierte Hindernisse.

Die Obstacle-Klasse verwaltet die Hindernisse im Spiel und sorgt dafür, dass sie sich neu positionieren, sobald sie den Bildschirm verlassen, um ein kontinuierliches Spielerlebnis zu gewährleisten.

Methoden

Start-Methode

private void Start()
{
    lastObject = startingLastObject;
    player = FindAnyObjectByType<PlayerMVT>().transform;
}

Zweck: Initialisiert das letzte Hindernis und findet das Transform des Spielers.

Funktionsweise: lastObject = startingLastObject;: Setzt das lastObject auf das im Inspector angegebene Anfangshindernis; player = FindAnyObjectByType<PlayerMVT>().transform;: Findet das Transform des Spielers mit der Methode FindAnyObjectByType.

OnBecameInvisible-Methode

private void OnBecameInvisible()
{
    if (player == null) return;
    if (transform.position.x >= player.position.x) return;
    if (transform == lastObject) return;

    Vector2 position = transform.position;
    float random = Random.Range(0, 100);

    if (random <= 50)
    {
        position.y = Random.Range(-2, 1);
    }
    else
    {
        position.y = Random.Range(15, 18);
    }

    position.x = lastObject.position.x + Random.Range(6f, 10f);
    transform.position = position;
    lastObject = transform;
}

Zweck: Positioniert das Hindernis neu, wenn es den Bildschirm verlässt und bestimmte Bedingungen erfüllt.

Funktionsweise: Das Skript stellt sicher, dass der Spieler existiert, bevor es fortfährt (if (player == null) return;), prüft, ob das Hindernis hinter dem Spieler positioniert ist (if (transform.position.x >= player.position.x) return;) und verhindert eine wiederholte Neupositionierung desselben Hindernisses (if (transform == lastObject) return;).

Es ermittelt die aktuelle Position des Hindernisses (Vector2 position = transform.position;), generiert eine Zufallszahl (float random = Random.Range(0, 100);) und passt die y-Position des Hindernisses basierend auf der Zufallszahl an.

Anschließend wird die x-Position relativ zum letzten Hindernis aktualisiert (position.x = lastObject.position.x + Random.Range(6f, 10f);) und lastObject auf das aktuelle Hindernis gesetzt (lastObject = transform;).

Zusammenfassung

  • Initialisierung: Setzt das anfängliche letzte Hindernis und sucht den Spieler;
  • Neupositionierung: Wenn ein Hindernis den Bildschirm verlässt und bestimmte Bedingungen erfüllt, wird es in zufälligem Abstand vor dem letzten Hindernis mit zufälliger Höhe neu positioniert;
  • Bedingungen: Stellt sicher, dass Hindernisse nur neu positioniert werden, wenn sie sich hinter dem Spieler befinden und nicht wiederholt dasselbe Hindernis betroffen ist.

Diese Konfiguration ermöglicht einen kontinuierlichen Fluss von Hindernissen im Spiel und sorgt für Herausforderung und Abwechslung für die Spielenden.

question mark

Was bestimmt die neue y-Position des Objekts, wenn es unsichtbar wird und neu positioniert wird?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 3
some-alt