Les classes

Un dictaticiel bien utile sur les classes et donc l'héritage par Christian Roy Plein écran

La notion de classe vous sera très utile dans la programmation de jeu. Mais aussi dans d'autre type d'application, alors n'hésitez pas à lire et relire cet article de Christian afin de bien assimiler cette notion.

Les Classes c'est quoi?


Bon, pour qu'un jeux soit efficace il faut : connaître les différentes structures de données d'un langage. Les classes ont été introduite dans les langages orienté objets, elle nous permettent de structurer des propriétés, des événements ECT...

Tout les composant visuels que vous pouvez mettre dans votre fenêtre dérivent d'une certaine classe jusqu'à l'ancêtre suprême (le plus bas dans la hiérarchie).

Héritage


Pour construire une nouvelle classe il faut dériver celle-ci d'une autre. Prenons comme exemple le bouton de commande:

Tobject : ---------------------------- Ancêtre suprême de tout dans Delphi.

Tpersistent
Tcontrol
Twincontrol
Tbutoncontrol _______Tbutton

 

L'exemple est un peut ennuyeux mais il faut comprendre ceci: Tbutton possède toutes les structures laissé en héritage par ses prédécesseur, donc propriétés, méthodes, gestionnaires d'événement s'il y en a!

 

Comprendre Comment ça peut servir avec DELPHIX


Pour mieux structurer votre jeux et batir vos personnages, monstres, background ect. Vous devrez dériver une nouvelle classe de la classe TIMAGESPRITE ou TBACKGROUNGSPRITE.

Exemple:

Type

TPlayerSprite = CLASS(TImageSprite)

PROTECTED

procedure DoCollision(Sprite: TSprite; var Done: Boolean); OVERRIDE;

procedure DoMove(MoveCount: Integer); OVERRIDE;

Procedure ShootAndKill(count : Integer); VIRTUAL;

end;

 

HEIN ?


Prenons l'exemple précédent, pour déclarrer une nouvelle classe qui est dérivé, on doit déclarer cela comme un nouveau type, la différence est la syntaxe " class(CLASSE DE DÉRIVATION)" qui annonce une dérivation et héritage.

Dans une classe il y a cinq type choses que l'on peut déclarer:

PUBLISHED

Les éléments sous cette rubrique apparaisent dans l'inspecteur d'objet, inutile dans notre cas pour DELPHIX

PUBLIC

Les éléments sous cette rubrique peuvent êtres accédés par des instances extérieures. Plus ou moins utiles.

PROTECTED

Les éléments sont ici protégé de toute instance extérieures et sont souvent en lecture seule.

PRIVATE

Ici les éléments sont seulement accessible par la classe elle-même. Nous utiliserons plus souvent celle-ci à moins que vous ne vouliez faire qu'un gros "engine" et vous faire une hiérarchie de classes.

AUTOMATED

Aucune utilité dans DELPHIX, Sauf quelques exceptions, mais ça sert presque pas pour les jeux!

Surchage Des méthodes et déclarations de nouvelles.


Pour déclarer de nouvelle méthodes, on doit écrire "VIRTUAL;" apres la déclaration. On fait cela seulement si l'on veut que les classes dérivées puissent jouir de l'héritage de ces méthodes. Si on pense que l'on ne dérivera pas la classe en question dans le futur, oubliez virtual.

Surchage des méthodes:

Dans l'entete de votre procédure il faut inscrire "OVERRIDE;" après la declaration de méthode.

Bon ceci est le plus important concept, il permet de prendre le code déjà programmé d'une méthode et d'implémenter du nouveau code sans ré-écrire tout au grand complet. Pour hériter le code il faut inscrire en premier sous begin, le mot

Inherited [nom de la procedure] (liste des paramètres).

Exemple: cet exemple surchage la prodédure qui fait bouger le sprite dans DELPHIX:

PROCEDURE TPlayerSprite.DoMove(MoveCount: Integer);

begin

INHERITED = DoMove(MoveCount);

AnimSpeed :=10/1000; //Vitesse d'animation 10 images / = seconds

IF isUp IN = form1.DXInput1.States THEN

BEGIN {si touche clavier ou joystick vers le haut.

END;

End;

Lors de la déclaration de la procedure, toujours qualifier par le nom de la classe "." le nom de la procédure. Genre :

PROCEDURE Tblob.GrosSautLaid (Hauteur : Integer); ------- ou GrosSautLaid est procedure de classe Tblob.

 

Constructeur


Dernièrement, si vous introduisez des nouvelle propriétées, il faut les initialiser par défaut dans la méthode Create. La méthode create alloue l'espace en mémoire centrale pour la classe et ses propriétés. La méthode destroy elle efface et libère tout espace réservé par celle-ci. On appelle ces méthodes : CONSTRUCTRICE ou DESTRUCTRICE.

Pour mieux comprendre ce document downloadez le composant Tboutonplus fait en delphi2 qui marche avec delphi3 et delphi4.

Il s'installera dans la pallette "SEX" pour système d'exploitatoin. ce nouveau bouton permet d'avoir un caption en multi-ligne ou à une posistion choisis(grace au constantes de l'api de windows). L'exemple est très simple.

 

Pour Info contactez Christian Roy

HOTDOT@SOFTHOME.NET

Ce document à été créé par christian Roy Toute reproduction à des fins monétaires est interdite.