Script langage de MOHAA, Appendix
B
Les classes, et comment elles sont utilisées
retour sommaire
retour texte principal
Document original par Bjarne
Grönnevik
Titre original
Appendix
B Classes, and how they are used.
Document traduit de l'anglais par Thomas
Grandjean aka [NER]Whisky.
Pour utiliser ces commandes efficacement, il est indispensable
de savoir comment elles sont envoyées aux objets. Ces objets
sont créés à partir d'une Classe. Les classes
dictent les commandes qui peuvent être envoyées aux
objets qui font partie de la classe.
Ce document vous explique tout ce que vous avez besoin de savoir
sur les classes pour réaliser des scripts avancés.
La plupart des mappeurs vont probablement se contenter de recopier
d'autres scripts et de les modifier à leur guise, mais
lorsque vous voulez réaliser un script vraiment très
compliqué et peu courant: Vous devez savoir ce que sont
les classes de MOH.
Pour une définition complète (mais courte) de TOUTES
les classes, allez voir les fichiers g_allclasses.html
( pour Allied Assault ) et MOH_GameClasses.html
( pour Spearhead ) fournis avec le SDK de EA Games.
Contenu du document:
· Explication des classes
· La hiérarchie des classes dans MOH
* L'explication des Classes (très simplifiée)
Toutes les commandes sont envoyées à un objet qui
appartient à une classe spécifique.
Exemples : tous les joueurs d'une partie sont des objets qui appartiennent
à la classe Player et tous les script_object (que l'on
utilise dans Radiant) font partie de la classe ScriptSlave.
Il existe entre les classes une relation d'héritage. Pour
expliquer cela, prenons l'exemple de la classe Player :
Player -> Sentient -> Animate -> Entity -> SimpleEntity -> Listener -> Class |
Ceci est la chaîne d'héritage de la classe Player.
Mais qu'est ce que veut dire ce charabia ? Hé bien beaucoup
de choses, mais la seule chose que vous avez besoin de savoir,
c'est que la flèche "->" est interpretée
comme " la classe Player hérite de la classe Sentient
"
Et alors, de quoi hérite-t-elle la classe Player? Des commandes
de la classe Sentient pardi !
Cela veut dire que toutes les commandes de la classe dont elle
hérite vont fonctionner aussi pour elle. Cela veut donc
aussi dire que via cette chaîne d'héritage, Player
va aussi hériter des commandes de Class, Listener, SimpleEntity,
Entity, Animate et Sentient.
Donc souvenez-vous en lisant les documents g_allclasses.html
et MOH_GameClasses.html
, qu'une classe supporte ces propres commandes PLUS toutes les
commandes établies pour les classes dont elle hérite
(cela ajoute donc énormément de commandes).
* Hiérarchie
des classes
de MOH
Voici la chaîne d'héritage complète pour Medal
of Honor :
Les classes suivies d'un "*", ne sont valables que pour
Medal of Honor : Spearhead
Cette chaîne est lue de la façon suivante:
Un(e) VehicleTurretGun est un(e) TurretGun (il hérite des commandes de TurretGun ), un TurretGun est un Weapon, un Weapon est un Item, un Item est un Trigger, un Trigger est un Animate, un Animate est un Entity, un Entity est un SimpleEntity, un SimpleEntity est un Listener, un Listener est un (e) Class... et voici une chose très intéressante: un VehicleTurretGun est (grâce à l'héritage) une Class , et tout le reste aussi d'ailleurs, vu que TOUT hérite de la classe Class.
Hé bien voilà, nous avons démontré pourquoi les classes s'appellent des classes J, mais aussi pourquoi le C++ est un langage orienté objet ! J'espère que vous l'avez compris
Retour au
texte principal.
Retour au sommaire