Partagez
Aller en bas
avatar
Kingdommangas
Garde d'Or
Garde d'Or
Nombre de messages : 1078
Localisation : Ma tête
Capacités : moyen
Distinction : Débrouillarde notoire é_è [Mist']
Ou celle qui partageait plus vite que son ombre [Gel']
Poisson 2017 [Amal]
Grâce à elle, tout le forum appelle Yamashi "Mamashi" [Yama]
Entraide d'Or
Règne dans l'ombre de la commu'
Youtubeuse beauté reconvertie dans le gaming [Amal']
Date d'inscription : 05/05/2015
https://www.youtube.com/channel/UCqGFuGrzm7jim1o5QJ4lKvg

Tuto RME base: Principe des commandes

le Ven 9 Sep 2016 - 0:03


-------------------------------------------------------------------------

Yahallo,

Le principe des commandes est sans aucun doute une des plus grosses parties de ce document de référence. C'est grâce aux commandes que le maker peut s'affranchir de beaucoup de contraintes de RPG Maker.

Qu'est ce qu'une commande ?:

Typiquement, une commande n'est rien de plus qu'une action :

   Pouvant renvoyer une valeur (par exemple, les coordonnées d'un évènement)
   Pouvant effectuer quelque chose (par exemple, effacer une image)
   Pouvant effectuer quelque chose et renvoyer quelque chose

Taxinomie d'une commande

Une commande est référencée par son nom. Elles sont généralement utilisées dans des appels de scripts mais peuvent être utilisées dans des scripts. Il existe plusieurs manières d'appeler une commande :

   command(:nom_de_la_commande, arg1, arg2, etc.)
   cmd(:nom_de_la_commande, arg1, arg2, etc.)
   c(:nom_de_la_commande, arg1, arg2, etc.)
   Command.nom_de_la_commande(arg1, arg2, etc.)
   nom_de_la_commande(arg1, arg2, etc.) : uniquement dans un appel de script.

Les premières formes permettent aux commandes d'être accessible depuis n'importe quel script (si elles le permettent).

La dernière n'est utilisable que dans les appels de scripts (dans un événement). Comme les commandes ont été pensées pour n'être utiles que dans des appels de scripts, dans la documentation, j'aurai l'habitude de n'utiliser que la dernière forme.

Maintenant, si vous souhaitez utiliser une commande RME dans l'écriture d'un script, libre à vous de choisir votre syntaxe préférée parmi les quatre premières.

Usage de la documentation

Toutes les commandes sont référencées dans la documentation (disponible ici) et sont organisées par catégories. Chaque commande est décrite formellement.

Arguments d'une commande

Une commande peut prendre plusieurs arguments (ou aucun). Si une commande ne prend aucun argument, il n'est pas nécessaire d'utiliser () en fin de commande.

Par exemple la commande mouse_x, qui renvoie la position X de la souris n'en demande aucun, je peux donc tout à fait faire V[1] = mouse_x pour attribuer la position X de la souris au moment de l'appel à la variable 1.

L'action d'attribuer une valeur à un argument est souvent nommée "passer x en argument". Les arguments ont des types de données différents et ces types sont référencés dans la documentation.

Voici les types que l'on peut trouver :

Type et Description
:Fixnum
Il s'agit d'un entier soit n'importe quel nombre entier de - l'infini à + l'infi. (1, 10, -7000 par exemple). Il s'agit du type d'argument le plus fréquent.

:Float
Il s'agit de n'importe quel nombre à virgule

:String
Il s'agit d'une chaîne de caractères. Les chaînes de caractères doivent toujours être placées entre guillemets ou entre apostrophes. (Par exemple "chien" est valide, mais 'chat' aussi).

:Boolean
Il s'agit de true (pour vrai, ou activé) ou false (pour faux ou désactivé). Une commande attendant un booléen peut donc prendre un interrupteur (local) à la place de true ou false

:Symbol
Il s'agit d'un mot préfixé de :, par exemple :chien ou :chat. En général, quand une commande attend ce genre de paramètre, la liste des symboles autorisés est spécifiée dans la documentation. Les symboles sont aussi très souvent utilisés pour référencer une touche du clavier ou de la souris.

:Tone
Il s'agit d'une teinte, on conseillera d'utiliser la commande tone(r, v, b, g) qui génère une teinte pour la passer en argument.

:Color Il s'agit d'une couleur, on conseillera d'utiliser la commande color(r, v, b, a) qui génère une couleur pour la passer en argument.

:Selector
Il s'agit d'une construction pour sélectionner plusieurs évènements d'un coup, les sélecteurs sont décrit précisémentICI

Arguments facultatifs

Un argument facultatif est un argument qui possède une valeur par défaut. Par conséquent, il n'est pas obligatoire de spécifier cet argument, si on ne veut pas le modifier.

Dans la documentation, les arguments facultatifs sont précédés d'un "*".

Par exemple, imaginons cette commande :

   une_commande(a, b, c, *d, *e, *f)

a, b et c sont des arguments obligatoires.
d, e et f sont des arguments facultatifs.

Je peux donc utiliser cette commande de différentes manières :

   une_commande(truc, bidule, chouette) et les arguments de d, e, f prendront leur valeur par défaut
   une_commande(truc, bidule, chouette, machin) et les arguments de e, f prendront leur valeur par défaut
   une_commande(truc, bidule, chouette, machin, chose) et l'argument f prendra sa valeur par défaut
   une_commande(truc, bidule, chouette, machin, chose, bilou) et aucune valeur par défaut ne sera utilisée.

Il est strictement impossible de jouir de la valeur par défaut de "e" si on veut spécifier la valeur de "f". Cependant pas de panique, la documentation spécifie chaque fois la valeur par défaut que prennent ces arguments facultatifs.

Exemple de lecture de la documentation pour une commande

Prenons la commande picture_show comme exemple (parce qu'elle est longue, et utilise plusieurs types d'arguments !)


On voit que ses arguments minimes sont id et name. Donc pour afficher l'image "lol.png", en tant qu'image 1, il me suffit de faire : picture_show(1, "lol").

Maintenant voyons plusieurs cas de figure :

   picture_show(1, "lol", 10, 20)
   Affichera l'image 1, le fichier "lol", à 10 pixels de la gauche et 20 pixels du haut
   picture_show(1, "lol", 10, 20, 1)
   La même chose, sauf que l'image sera positionnée par rapport à son centre (origine : 1 = centré)
   picture_show(1, "lol", 10, 20, [10, 10])
   Cette fois ci, l'origine de l'image ne sera ni le point Haut/gauche, ni le centre, mais précisément le point de coordonnées [10, 10].
   Si la taille de l'image fait 30*40 px, il est possible de prendre comme origine le point Bas/gauche : [0,40], le point Haut/droite : [30,0], ou typiquement... n'importe quel point. Très pratique !
   picture_show(1, "lol", 10, 20, 0, 100, 84, 220, 1)
   Cette fois on utilise tous les paramètres : l'origine de l'image sera son point Haut Gauche (0), elle fera toute sa largeur (zoom_x = 100) mais seulement 84% de sa hauteur (zoom_y = 84), elle aura une opacité de 220 (donc sera légèrement transparente) et son mode de fusion sera l'addition (blend_type = 1).

Arguments particuliers

En général, l'annotation de type d'un argument donne une information limitée. C'est très visible dans le cas des arguments :Fixnum. Donc voici une spécification sur certains arguments entiers :

   Lorsqu'une opacity est attendue, la valeur doit être comprise en 0 (transparent) et 255 (totalement opaque).
   Lorsqu'un blend(_mode/type) est attendu, la valeur peut être 0 (normal), 1(addition) ou 2(soustraction).
   Lorsqu'un zoom est attendu, la valeur doit être comprise entre 0 et 100.
   Lorsqu'une speed est attendu, le nombre au négatif correspondra au sens opposé (par exemple pour une rotation dans le sens des aiguilles d'une montre la vitesse sera positive et pour tourner dans l'autre sens, la vitesse sera négative).

Commande renvoyant des valeurs

Il existe un certains nombre de commandes qui renvoient des valeurs (par exemple, mouse_x et mouse_y), ces commandes peuvent être liées à une variable (ou une variable locale, ou aux labels), de même qu'elles peuvent tout de suite construire des expressions.

Par exemple : V[1] = mouse_x. Ou encore Si script : mouse_x > 3.

Les commandes qui renvoient des booléens (true ou false) peuvent directement être utilisées dans une expression ou être liées à des interrupteurs (ou interrupteurs locaux), par exemple S[1] = pixel_in_picture?(1, mouse_x, mouse_y) ou encore Si script : pixel_in_picture?(1, mouse_x, mouse_y).

Commandes renvoyant des tableaux

Il existe certaines commandes qui renvoient des tableaux. Ces commandes sont un peu particulières à manipuler. Par exemple, la commande actor_armors(acteur_id), renverra un tableau de toutes les indexes des armures équipées par un héros. On peut connaître la taille d'un tableau au moyen de la commande standard length(tableau) et accéder à une cellule particulière au moyen de la commande standard get(tableau, index_de_la_cellule).

Conclusion

Les commandes constituent la brique centrale de RME, elles permettent des actions très complexes en Event Making classique. Pour en voir certains usages, je vous invite à vous rendre sur la page Biloucorp qui en présente quelques usages au travers de tutoriels ludiques Smile (Ces tutoriels ont étés rédigés pour l'Event Extender mais sont à priori compatible avec RME).

Voici la liste des commandes de RME

-------------------------------------------------------------------------


---------------------------------------------

Revenir en haut
Permission de ce forum:
Vous pouvez répondre aux sujets dans ce forum