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
course content

Contenu du cours

Jeu de Combat dans Unity

Jeu de Combat dans Unity

1. Système d'Animation Unity
2. Comportement du Joueur
3. Comportement de l'Ennemi
4. Améliorer le Jeu
5. Améliorer le Jeu Flappy Bird

book
Obstacles 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

course content

Contenu du cours

Jeu de Combat dans Unity

Jeu de Combat dans Unity

1. Système d'Animation Unity
2. Comportement du Joueur
3. Comportement de l'Ennemi
4. Améliorer le Jeu
5. Améliorer le Jeu Flappy Bird

book
Obstacles 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
some-alt