Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Expliquer le Code | 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
Expliquer le Code

Code du Joueur

Initialisation dans la méthode Start

private void Start()
{
    startPosition = transform.position;
}

But : Enregistre la position initiale du joueur au démarrage du jeu.

Réinitialisation de la position du joueur

public void RestartPlayerPosition()
{
    transform.position = startPosition;
    rb.velocity = Vector2.zero;
}

But : Réinitialise la position du joueur à la position de départ et arrête tout mouvement en mettant la vélocité à zéro.

Gestion des entrées du joueur dans la méthode Update

private void Update()
{
    Vector2 oldVelocity = rb.velocity;
    if (Input.GetKeyDown(KeyCode.Space))
    {
        oldVelocity.y = 6;
    }
    oldVelocity.x = 4;
    rb.velocity = oldVelocity;
}

But : Capture l'entrée du joueur (touche espace) pour faire "sauter" le joueur en définissant la vélocité y à 6, tout en déplaçant constamment le joueur vers la droite en fixant la vélocité x à 4.

Gestion des collisions

OnCollisionEnter2D

private void OnCollisionEnter2D(Collision2D collision)
{
    if (collision.collider.tag == "ground")
    {
        RestartPlayerPosition();
    }
}

But : Réinitialise la position du joueur lors d'une collision avec des objets ayant le tag "ground".

OnTriggerEnter2D

private void OnTriggerEnter2D(Collider2D collision)
{
    if (collision.tag == "win")
    {
        winPanel.SetActive(true);
        SoundManager.instance.PlayEffect(1);
    }
}

But : Active le panneau de victoire et joue un effet sonore lorsque le joueur entre en collision avec des objets ayant le tag "win".

Résumé

  • Déplacement : Le joueur se déplace continuellement vers la droite et saute lorsque la touche espace est pressée ;
  • Réinitialisation : La position du joueur est réinitialisée en cas de collision avec le sol ;
  • Victoire : Affiche un panneau de victoire et joue un son lors de l'atteinte du déclencheur de victoire.

Classe SoundManager

Méthode Start

private void Start()
{
    if (instance == null)
    {
        instance = this;
    }
    else
    {
        Destroy(gameObject);
        return;
    }
    DontDestroyOnLoad(gameObject);
}

But : Garantit qu'il n'existe qu'une seule instance de SoundManager dans le jeu en utilisant le modèle Singleton. Utilise DontDestroyOnLoad(gameObject) pour assurer la persistance entre différentes scènes.

Méthode PlayEffect

public void PlayEffect(int index)
{
    if (index >= 0 && index < effects.Count)
    {
        source.PlayOneShot(effects[index]);
    }
}

But : Prend un entier index pour identifier quel effet sonore jouer à partir de la liste effects. Vérifie si l'index est dans la plage valide de la liste effects et joue l'effet sonore spécifié en utilisant source.PlayOneShot(effects[index]).

Résumé

  • Patron Singleton : Garantit qu'une seule instance de SoundManager existe dans le jeu, persistant à travers les scènes ;
  • Lecture des effets sonores : Utilise la méthode PlayEffect pour jouer des effets sonores en spécifiant leur index dans la liste effects ;
  • Source audio : Utilise un composant AudioSource pour lire les clips audio.

Classe WinPanel

La classe WinPanel fournit les fonctionnalités pour le panneau d'interface utilisateur qui apparaît lorsque le joueur gagne. Elle inclut des méthodes pour retourner au menu principal ou redémarrer le niveau, chacune jouant un effet sonore et chargeant la scène appropriée.

Méthodes

Méthode ReturnToMainMenu

public void ReturnToMainMenu()
{
    SoundManager.instance.PlayEffect(0);
    SceneManager.LoadScene(0);
}

But : Joue un effet sonore (index 0) avec SoundManager.instance.PlayEffect(0). Charge la scène du menu principal avec l’index de build 0 en utilisant SceneManager.LoadScene(0).

Méthode RestartLevel

public void RestartLevel()
{
    SoundManager.instance.PlayEffect(0);
    SceneManager.LoadScene("Game");
}

But : Joue un effet sonore (index 0) avec SoundManager.instance.PlayEffect(0). Charge la scène de jeu nommée "Game" en utilisant SceneManager.LoadScene("Game").

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 5. Chapitre 1

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
Expliquer le Code

Code du Joueur

Initialisation dans la méthode Start

private void Start()
{
    startPosition = transform.position;
}

But : Enregistre la position initiale du joueur au démarrage du jeu.

Réinitialisation de la position du joueur

public void RestartPlayerPosition()
{
    transform.position = startPosition;
    rb.velocity = Vector2.zero;
}

But : Réinitialise la position du joueur à la position de départ et arrête tout mouvement en mettant la vélocité à zéro.

Gestion des entrées du joueur dans la méthode Update

private void Update()
{
    Vector2 oldVelocity = rb.velocity;
    if (Input.GetKeyDown(KeyCode.Space))
    {
        oldVelocity.y = 6;
    }
    oldVelocity.x = 4;
    rb.velocity = oldVelocity;
}

But : Capture l'entrée du joueur (touche espace) pour faire "sauter" le joueur en définissant la vélocité y à 6, tout en déplaçant constamment le joueur vers la droite en fixant la vélocité x à 4.

Gestion des collisions

OnCollisionEnter2D

private void OnCollisionEnter2D(Collision2D collision)
{
    if (collision.collider.tag == "ground")
    {
        RestartPlayerPosition();
    }
}

But : Réinitialise la position du joueur lors d'une collision avec des objets ayant le tag "ground".

OnTriggerEnter2D

private void OnTriggerEnter2D(Collider2D collision)
{
    if (collision.tag == "win")
    {
        winPanel.SetActive(true);
        SoundManager.instance.PlayEffect(1);
    }
}

But : Active le panneau de victoire et joue un effet sonore lorsque le joueur entre en collision avec des objets ayant le tag "win".

Résumé

  • Déplacement : Le joueur se déplace continuellement vers la droite et saute lorsque la touche espace est pressée ;
  • Réinitialisation : La position du joueur est réinitialisée en cas de collision avec le sol ;
  • Victoire : Affiche un panneau de victoire et joue un son lors de l'atteinte du déclencheur de victoire.

Classe SoundManager

Méthode Start

private void Start()
{
    if (instance == null)
    {
        instance = this;
    }
    else
    {
        Destroy(gameObject);
        return;
    }
    DontDestroyOnLoad(gameObject);
}

But : Garantit qu'il n'existe qu'une seule instance de SoundManager dans le jeu en utilisant le modèle Singleton. Utilise DontDestroyOnLoad(gameObject) pour assurer la persistance entre différentes scènes.

Méthode PlayEffect

public void PlayEffect(int index)
{
    if (index >= 0 && index < effects.Count)
    {
        source.PlayOneShot(effects[index]);
    }
}

But : Prend un entier index pour identifier quel effet sonore jouer à partir de la liste effects. Vérifie si l'index est dans la plage valide de la liste effects et joue l'effet sonore spécifié en utilisant source.PlayOneShot(effects[index]).

Résumé

  • Patron Singleton : Garantit qu'une seule instance de SoundManager existe dans le jeu, persistant à travers les scènes ;
  • Lecture des effets sonores : Utilise la méthode PlayEffect pour jouer des effets sonores en spécifiant leur index dans la liste effects ;
  • Source audio : Utilise un composant AudioSource pour lire les clips audio.

Classe WinPanel

La classe WinPanel fournit les fonctionnalités pour le panneau d'interface utilisateur qui apparaît lorsque le joueur gagne. Elle inclut des méthodes pour retourner au menu principal ou redémarrer le niveau, chacune jouant un effet sonore et chargeant la scène appropriée.

Méthodes

Méthode ReturnToMainMenu

public void ReturnToMainMenu()
{
    SoundManager.instance.PlayEffect(0);
    SceneManager.LoadScene(0);
}

But : Joue un effet sonore (index 0) avec SoundManager.instance.PlayEffect(0). Charge la scène du menu principal avec l’index de build 0 en utilisant SceneManager.LoadScene(0).

Méthode RestartLevel

public void RestartLevel()
{
    SoundManager.instance.PlayEffect(0);
    SceneManager.LoadScene("Game");
}

But : Joue un effet sonore (index 0) avec SoundManager.instance.PlayEffect(0). Charge la scène de jeu nommée "Game" en utilisant SceneManager.LoadScene("Game").

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 5. Chapitre 1
some-alt