IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Créer un jeu avec Unity 3D

Solution exercice 1

L'auteur

Profil Pro

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

Navigation

   

Sommaire

   
   

Énoncé exercice 1

   

I. Vidéo


Cliquez pour lire la vidéo


II. Exercice

Vous pouvez lire l'énoncé de l'exercice ici.

III. Solution

La solution utilise l'héritage, donc n'hésitez pas à revoir la vidéo dédiée à ce sujet.

III-A. La classe « Personnage »

La classe « Personnage » constitue la classe de base de tous nos personnages, que ce soit Link (un Heros) ou Armos (un Ennemi). Pour cela, elle contient deux variables membres :

  • le nom du personnage ;
  • la vie du personnage (définie par défaut à 100).

Son constructeur est simple et ne fait que copier le nom passé en paramètre à celui-ci.

 
Sélectionnez
class Personnage
{
    var nomPersonnage:String;
    var viePersonnage:int = 100;
    
    function Personnage(nom:String){
        nomPersonnage = nom;
    }
}

III-B. La classe « Heros »

 
Sélectionnez
class Heros
{
    var chance:int;
    
    function Heros(nom:String){
        super(nom);
        Debug.Log("Je suis un héros : " + nomPersonnage);
    }
    
    function Attaquer(){
        Debug.Log(nomPersonnage + " attaque !");
        
        chance = Random.Range(1,6);
        if (chance == 1){
            return true;
        }else{
            return false;
        }
    }
}

III-C. La classe « Ennemi »

 
Sélectionnez
class Ennemi
{
    var chance:int;
    
    function Ennemi(nom:String){
        super(nom);
        Debug.Log("Je suis un méchant : " + nomPersonnage);
    }
    
    function Attaquer(){
        Debug.Log(nomPersonnage + " attaque !");
        
        chance = Random.Range(1,6);
        if (chance == 1){
            return true;
        }else{
            return false;
        }
    }
}

III-D. La fonction Start()

La fonction Start() est l'endroit où le combat se déroule.

 
Sélectionnez
function Start(){
    var heros:Heros = new Heros("LINK");
    var ennemi:Ennemi = new Ennemi("ARMOS");
    
    while(heros.viePersonnage > 0 && ennemi.viePersonnage > 0){
    
        Debug.Log("État des vies : " + heros.nomPersonnage + " : " + heros.viePersonnage +
        " ------- " + ennemi.nomPersonnage + " : " + ennemi.viePersonnage);
        
        var attaqueLink = heros.Attaquer();
        
        if (attaqueLink)
        {
            ennemi.viePersonnage -= 10;
            Debug.Log(heros.nomPersonnage + " fait perdre -10 à " + ennemi.nomPersonnage);
        }else{
            Debug.Log(heros.nomPersonnage + " échoue");
        }
        
        var attaqueArmos = ennemi.Attaquer();
        
        if(attaqueArmos)
        {
            heros.viePersonnage -= 10;
            Debug.Log(ennemi.nomPersonnage + " fait perdre -10 à " + heros.nomPersonnage);
        }else{
            Debug.Log(ennemi.nomPersonnage + " échoue");
        }
    }
    
    Debug.Log("Fin de partie ! ");
    
    if(heros.viePersonnage > ennemi.viePersonnage){
        Debug.Log(heros.nomPersonnage + " gagne!");
    }else{
        Debug.Log(ennemi.nomPersonnage + " gagne!");
    }
}

IV. Améliorations des classes

Ici, les deux classes sont très semblables, voire trop. En effet, le code des deux fonctions « Attaquer », que ce soit dans Heros ou dans Ennemi est identique. Le code aurait pu être implémenté une unique fois, dans la classe Personnage.

L'avantage des classes est de permettre de créer de nouvelles aptitudes qui ne seraient disponibles, soit que pour les Heros, soit que pour les Ennemis. N'hésitez pas à expérimenter avec le code et à rajouter des améliorations dans ce combat.

V. Commenter

Vous pouvez commenter et donner vos avis dans la discussion associée sur le forum, ou encore, poser vos questions dans le forum Unity.

VI. Remerciements

Nous remercions « ToutApprendre » pour l'élaboration et la réalisation de ces vidéos. Vous pouvez retrouver sa chaîne YouTube en suivant ce lien.

Navigation

   

Sommaire

   
   

Énoncé exercice 1

   

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2014 Équipe rubrique 2D/3D/Jeux. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.