Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Obstacles Générés Aléatoirement. | Améliorer le Jeu Flappy Bird
Jeu de Combat dans Unity

bookObstacles Générés Aléatoirement.

La classe Obstacle gère les obstacles dans le jeu, en s'assurant qu'ils se repositionnent lorsqu'ils sortent de l'écran afin de maintenir un gameplay continu.

Méthodes

Méthode Start

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

But : Initialise le dernier obstacle et trouve le transform du joueur.

Fonctionnement : lastObject = startingLastObject; : Définit lastObject sur l'obstacle initial spécifié dans l'Inspector ; player = FindAnyObjectByType<PlayerMVT>().transform; : Trouve le transform du joueur en utilisant la méthode FindAnyObjectByType.

Méthode OnBecameInvisible

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;
}

But : Repositionnement de l'obstacle lorsqu'il sort de l'écran et que certaines conditions sont remplies.

Fonctionnement : Le script vérifie d'abord l'existence du joueur (if (player == null) return;), s'assure que l'obstacle est situé derrière le joueur (if (transform.position.x >= player.position.x) return;), et évite le repositionnement consécutif du même obstacle (if (transform == lastObject) return;).

Il récupère la position actuelle de l'obstacle (Vector2 position = transform.position;), génère un nombre aléatoire (float random = Random.Range(0, 100);) et ajuste la position y de l'obstacle en fonction de ce nombre.

Ensuite, il met à jour la position x par rapport au dernier obstacle (position.x = lastObject.position.x + Random.Range(6f, 10f);) et met à jour lastObject pour référencer l'obstacle actuel (lastObject = transform;).

Résumé

  • Initialisation : Définit le dernier obstacle initial et recherche le joueur ;
  • Repositionnement : Lorsqu'un obstacle sort de l'écran et que des conditions spécifiques sont remplies, il est repositionné à une distance aléatoire devant le dernier obstacle avec une hauteur aléatoire ;
  • Conditions : Garantit que les obstacles ne sont repositionnés que s'ils sont derrière le joueur et qu'il ne s'agit pas du même obstacle de façon répétée.

Cette configuration permet un flux continu d'obstacles dans le jeu, maintenant le défi et la variété pour le joueur.

question mark

Qu'est-ce qui détermine la nouvelle position y de l'objet lorsqu'il devient invisible et est repositionné ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 5. Chapitre 3

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Awesome!

Completion rate improved to 3.33

bookObstacles Générés Aléatoirement.

Glissez pour afficher le menu

La classe Obstacle gère les obstacles dans le jeu, en s'assurant qu'ils se repositionnent lorsqu'ils sortent de l'écran afin de maintenir un gameplay continu.

Méthodes

Méthode Start

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

But : Initialise le dernier obstacle et trouve le transform du joueur.

Fonctionnement : lastObject = startingLastObject; : Définit lastObject sur l'obstacle initial spécifié dans l'Inspector ; player = FindAnyObjectByType<PlayerMVT>().transform; : Trouve le transform du joueur en utilisant la méthode FindAnyObjectByType.

Méthode OnBecameInvisible

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;
}

But : Repositionnement de l'obstacle lorsqu'il sort de l'écran et que certaines conditions sont remplies.

Fonctionnement : Le script vérifie d'abord l'existence du joueur (if (player == null) return;), s'assure que l'obstacle est situé derrière le joueur (if (transform.position.x >= player.position.x) return;), et évite le repositionnement consécutif du même obstacle (if (transform == lastObject) return;).

Il récupère la position actuelle de l'obstacle (Vector2 position = transform.position;), génère un nombre aléatoire (float random = Random.Range(0, 100);) et ajuste la position y de l'obstacle en fonction de ce nombre.

Ensuite, il met à jour la position x par rapport au dernier obstacle (position.x = lastObject.position.x + Random.Range(6f, 10f);) et met à jour lastObject pour référencer l'obstacle actuel (lastObject = transform;).

Résumé

  • Initialisation : Définit le dernier obstacle initial et recherche le joueur ;
  • Repositionnement : Lorsqu'un obstacle sort de l'écran et que des conditions spécifiques sont remplies, il est repositionné à une distance aléatoire devant le dernier obstacle avec une hauteur aléatoire ;
  • Conditions : Garantit que les obstacles ne sont repositionnés que s'ils sont derrière le joueur et qu'il ne s'agit pas du même obstacle de façon répétée.

Cette configuration permet un flux continu d'obstacles dans le jeu, maintenant le défi et la variété pour le joueur.

question mark

Qu'est-ce qui détermine la nouvelle position y de l'objet lorsqu'il devient invisible et est repositionné ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 5. Chapitre 3
some-alt