Navigation▲
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.
class Personnage
{
var nomPersonnage:String;
var viePersonnage:int = 100;
function Personnage(nom:String){
nomPersonnage = nom;
}
}III-B. La classe ��Heros��▲
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��▲
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.
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.



