Skip to content
This repository has been archived by the owner on Jul 24, 2020. It is now read-only.

Retour de commandes

Xavier Van de Woestyne edited this page Jul 20, 2017 · 13 revisions

Une commande peut être une action, par exemple picture_show, qui se contente d'afficher une image. Mais une commande peut aussi renvoyer une information, par exemple mouse_x, qui renverra la position x de la souris.

Une commande peut être liable

Il existe plusieurs types de retour de commande. La plupart des commandes renvoyant des informations, les renvoient sous forme d'entiers. Elles peuvent donc être liées à une variable. Par exemple : V[1] = mouse_x. Les commandes renvoyant true ou false peuvent être associées à un des interrupteurs. (true correspondant à l'interrupteur activé, false à l'interrupteur désactivé).
Elles peuvent aussi être directement liées à une condition. Par exemple : Si Script : mouse_x > 15 ou encore Si Script : actor_has_weapon?(1).
Par convention, une commande renvoyant true ou false se termine par un point d'interrogation.

Commandes renvoyant des tableaux

Il arrive qu'un commande renvoie une structure de données un peu plus complexe qu'une valeur simple. En effet, il est possible de renvoyer un tableau de données. Un tableau de données est, comme son nom l'indique, une valeur qui en contient plusieurs autres, indexées par un entier. Un tableau commence toujours à l'indice zéro et finit à l'indice de la taille - 1. Il existe plusieurs manières d'accéder à des informations sur les tableaux.

Renvoyer la taille d'un tableau

Il existe deux manières de renvoyer la taille d'un tableau. La première est via la commande length(tableau), qui renvoie la taille d'un tableau passé en argument. La seconde est propre à Ruby : tableau.length. Vous êtes libre de choisir la manière de récupérer la taille.

Accéder à un élément d'un tableau

Comme pour la taille, il est possible d'accéder à un indice en particulier. Soit en utilisant la commande get(tableau, n) qui renvoie la n-ième valeur du tableau (n'oublions pas que le tableau commence à 0, la première est donc 0), soit la méthode ruby : tableau[n].

Récapitulatif

Si on prend par exemple une commande qui renvoie un tableau :

actor_armors(id)

renvoie le tableau des ID's des armures équipées du héros référencé par son ID

Nom Type Description
id Fixnum ID de l'acteur

Et que l'on décide de stocker le tableau renvoyé par actor_armors(1) dans la variable locale SV[1] :

  • SV[1] = actor_armors(1)

Voici alors quatre manières équivalentes de retourner la taille du tableau :

  • SV[1].length
  • length(SV[1])
  • length(actor_armors(1))
  • actor_armors(1).length

Et voici quatre manières équivalentes de retourner le premier élément du tableau :

  • SV[1][0]
  • get(SV[1], 0)
  • actor_armors(1)[0]
  • get(actor_armors(1), 0)

Exemple concret

Imaginons que nous voudrions que le héros 1 dise toutes les armures qui lui sont équipées, voici le code évènement :

Image de l'évènement

Concrètement, on initialise les variables. La variable 1 récupère le tableau de toutes les ID's d'armures équipées. La variable 2 sa taille. La variable 3 initialise un compteur (qui va nous servir à récupérer toutes les armures une par une). Ensuite il suffit de boucler tant que le compteur n'est pas égal à la taille. Et récupérer les éléments un par un au moyen de la commande get. (Les index des tableaux commencent à zéro). Ensuite il suffit de se servir des commandes relatives aux armures pour avoir les informations désirées.

Clone this wiki locally