M   E   N   U

  N  E  W  S
    News
       Mugen News
       Site News
       Old News

 D  O  W  N  L  O  A  D
    Characters
       Athena 2001
       Athena 2002
       Neo Athena
       Evil Ryu
       Violent Ken
       Lynn Baker
       Karin
       Sissy
       Sakura
    Hosted
       Diao
       Kyo
    Stages
       Neogeo 1
       Neogeo 2
       Neogeo 3
       Neogeo 4
       EFZ
       EFZ 2
       Melty Blood
       Others
    Add-ons
       Screen Pack
       Tools/Others
       Video

 W  I  P
    Characters
       Mina

 D  O  C  S
    Tutoriels (FR)
       Personnages
       Stages
       Barres de vie
       Screen Pack
       Intro-Fin
    FAQ (FR)
       Lexique
       Mugen
       Personnages
       Stages
       Screen Pack
       Communauté
    Mugen Torch
       Text in French
       Text in English

 A  R  T  S
       Iris-Net



Tutorial Création et Adaptation de personnages sous Mugen par Sunny : 4eme Partie


Constantes et Variables


Voici une petite explication sur les constantes et les variables. J'espère qu'áprès il n'y aura plus de problèmes avec car elles sont très utiles pour la prog (surtout les variables).

Comme je l'ai indiqué au debut de cette partie, Mugen gère plusieurs types de nombres dont la valeur de certains peut être modifiée par le créateur. Ces nombres qui dépendent dudit créateur se répartissent en 2 catégories :
- les constantes
- les variables

Les Constantes


Ce sont des valeurs numériques qui sont fixées une fois pour toutes :
le joueur ne peut les modifier à moins d'éditer le fichier où elles sont définies.

Les constantes dont le joueur à accès se trouvent dans la première partie du CNS :
ce sont toutes les valeurs qui définissent la quantité de vie et d'ennergie dont peut disposer le joueur, sa vitesse de déplacement, la hauteur de ses sauts, etc...

Au cours d'un combat, ces valeurs sont intouchables : quoi qu'il se passe, les valeurs des constantes ne seront pas modifiées. On peut néamoins y accèder et les utiliser dans n'importe quelle opération comme n'importe quel nombre classique.

On appelle la valeur d'une constante en utilisant la syntaxe const( nom ), dans lequelle nom est le nom de la constante. L'orthographe de toutes les constantes qui peuvent être utilisées se trouvent dans le fichier Trigger List, dans la partie Const.

Pourquoi utiliser une constante au lieu d'un nombre classique ? Par exemple, sachant que la vitesse de déplacement avant de notre perso est de 4, pourquoi faire l'opération 15 + const(velocity.walk.fwd.x) au lieu de 15 + 4 ?
1 - vous n'êtes pas certains que vous ne modifierez pas vos constantes (pour faire votre perso plus accurate par exemple).
2 - vous voulez utiliser les constantes de votre adversaire (lors d'une projection par exemple), mais celles-ci varient selon les personnages.
3 - vous avez en tête une autre utilisation à laquelle je n'ai pas encore pensé (:p).

Par ailleurs le moteur de jeu utilise ces constantes dans les States standards, pour déterminer la vitesse de déplacement du personnage dans le state de la marche (le 20). Comme cette vitesse est différente pour chaque personnage, il ne peut pas utiliser un nombre fixe.

Ceci dit, il est fort peu probable que vous ayez à utiliser ces nombres lors de la prog de votre perso.

Les Variables

Comme leur nom l'indique, ce sont des nombres dont la valeur numérique peut varier au cours d'un combat. On peut les comparer aux nombres x et y dans l'équation y = 3x + 5 : on peut mettre n'importe quelle valeur dans le x, et selon la valeur qui lui aura été donné, la valeur du y sera différente.

Tout comme les constantes, on peut utiliser les variables dans n'importe quel type d'opération (addition, soustraction, comparaison, etc...).

En pratique, il existe quatre types de variables dans Mugen :
- les var :
ce sont des variables dans lesquelles on ne peut mettre que des entiers (nombres sans virgules) positifs ou négatifs.
- les fvar : dans lesquelles on peut mettre n'importe quel réel (nombre avec ou sans virgule, positif ou négatif).
- les sysvar et les sysFvar : même chose que précédement sauf que ces variables sont utilisées par le moteur de jeu -> à ne pas jouer avec.

Mugen peut gérer jusqu'à 60 variables par personnage. Pour les reconnaître, on les numérote de 0 à 59. En pratique, on appliquera la syntaxe var( numéro ) ou fvar( numéro ), dans laquelle numéro est le numéro de la variable.

Dans Mugen, on crée une variable en lui donnant une valeur avec la commande VarSet :

[State 200, var set]

type = VarSet
trigger1 = time = 0
v = 1
value = 0

Ici, on indique au moteur de jeu qu'il faut assigner à la variable 1 (v = 1) la valeur 0 (value = 0). Si la variable 1 n'existait pas, Mugen la crée et lui donne la valeur 0. Si la variable 1 existait mais contenait une autre valeur, Mugen remplace l'ancienne valeur par la nouvelle. On pourra ensuite réutiliser dans une expression la valeur de cette variable avec la syntaxe var(1).

Les autres actions que vous pourrez faire une fois vos variables définies sont :
- VarAdd =
ajoute une valeur à une variable existante. Pour reprendre un exemple que j'ai déjà donné :

[state 200, incrémentation]
type = VarAdd
trigger1 = time > 0
v = 1
value = var(1) + 1 ; à chaque nouveau tick, le programme prend l'ancienne valeur de la variable 1 et la remplace par (ancienne valeur + 1).

- VarRandom = donne une valeur aléatoire à la variable :

[state 200, choix aléatoire]
type = VarRandom
trigger1 = time = 0
v = 1
range = 100,700 ; donne à la variable 1 un nombre choisi aléatoirement entre 100 et 700.

- VarRangeSet = donne la même valeur à toute une série de variables :

[state 200, même valeur pour tous]
type = VarRangeSet
trigger1 = time = 0
value = 99
range = 1,20 ; donne aux variables 1 à 20 la valeur 99.

Attention : cette syntaxe est la syntaxe pour les var. Pour les fvar elle sera légèrement différente (voir le State Controller Référence pour plus de précisions).

A ma connaissance, on utilise les variables pour trois raisons principales :

1 -
stocker le résultat d'une opération pour le réutiliser et/ou le modifier par la suite. Un simple VarSet est suffisant pour cette action.

2 - interrupteurs : ne faire une action que si on a donné auparavant à une variable une certaine valeur. Exemple :

[state 200, end state]
type = ChangeState
trigger1= var(1) > 0
value = 201 ; va au state 201 si la valeur de la variable 1 est strictement supérieure à 0.

3 - compteur (chronomètre) : on incrémente la valeur d'une variable à chaque tick. Lorsque la variable atteint une certaine valeur, on execute une action. Pour cette action, il faut combiner incrémentation et intérupteur.

On peut imaginer d'autres utilisations. Ce sera à vous de voir pour quelles raisons vous voulez les utiliser.



 
   Home
   About
   FAQ
   Disclaimer
   Staff/Thanks
   Contact



   Forum in french
   and english.

   Iris-Net



   
   Delta Park
   Sunny World
   Neoxfight Studios
   Mike Mugen
   Gods Anger
   Matmut's Creations
   Byakko
   :o domain
   Fun Factory
   Mugen Guild
   Anime Mugen
   Shin Mugen





Cute Mugen | © 2002 - 2004 | All Rights Reserved.