Wiki PS
Advertisement

Introduction[]

Un des aspects les plus utiles des langages de programmation est la possibilité de définir des variables, et le Kode ne fait pas exception. Les variables permettent d'enregistrer une information pour de futures utilisations. Tous les objets du jeu possèdent un certain nombre de variables prédéfinies, mais vous pouvez créer vos propres variables pour enregistrer toute information supplémentaire.
Certaines des variables prédéfinies sont en lecture seule, ce qui veut dire que vous pouvez lire leur valeur, mais pas la modifier. Certaines variables prédéfinies sont limitées à une tranche spécifique de valeurs ; par exemple, la [santé] est limitée entre 0 et [santé max].
Il y a plusieurs types de variables différents, et cette page tentera de donner pour chacun un exemple de variable prédéfinie dans chaque objet, ainsi qu'un exemple de cas où vous auriez envie d'utiliser votre propre variable.

Vous pouvez affecter une valeur à une variable en utilisant la tuile [égale].
Par exemple : WHEN [une fois] DO [variable numérique : force] [égale] [5]

Vous devez faire correspondre les types de variables des deux côtés de [égale]. Par exemple, si vous avez une variable numérique à gauche, vous devez avoir un nombre à droite. Vous ne pouvez pas demander à votre variable numérique d'être égale à "Jim", il faut utiliser une variable texte pour cela.

Vous pouvez créer une nouvelle variable de n'importe quel type en allant dans la section Valeurs, et en choisissant le type de variable que vous voulez.


Types de Variable[]

Variable numérique

Nombre[]

Tous les jeux sont remplis de nombres. Quelques exemples pour chaque objet sont des valeurs comme la [santé] et la [santé max], le [facteur de gravité], la [hauteur saut] ou la [vitesse au sol]. D'autres variables que vous pourriez avoir envie d'ajouter sont la mana et le maximum de mana, les points d'expériences et le niveau actuel, le score.

Les nombres peuvent être soit entiers soit décimaux. Regardez les tuiles de Math pour voir ce que vous pouvez faire avec, comme les opérations d'addition, soustraction, multiplication, ainsi que d'autres fonctions plus avancées ([valeur absolue], [arrondir], etc.).

Plus d'informations sur les nombres


Variable texte

Texte[]

Le texte est utilisé pour tout ce qui est affiché à l'écran, mais il peut aussi être utilisé pour d'autres choses. On peut nommer chaque page du cerveau, ainsi que l'objet. Vous pourriez utiliser une variable texte pour les noms de sortilèges ou coups spéciaux, ou bien vos dialogues dans les bulles de texte.

Le texte peut contenir n'importe quel caractère du clavier, notamment des lettres, chiffres et symboles de ponctuation.

Vous pouvez ajouter des morceaux de texte pour former un texte plus grand, c'est ce que l'on appelle la concaténation. Par exemple [txt : Hello ] [plus] [txt : World] renvoie le texte "Hello World". Vous pouvez concaténer la plupart des autres types de variables avec une variable texte.

Plus d'informations sur les textes


Variable booléenne

Booléen[]

Les variables booléennes ont deux valeurs possibles : [VRAI] ou [FAUX]. N'importe quelle condition peut être enregistrée dans un booléen. Des exemples de booléens existants pour chaque objet sont [en l'air], [saute], ou [bouton gauche souris]. Vous pourriez utiliser un booléen pour savoir si une compétence/un sortilège est rechargé.

Une opération utile que vous pouvez appliquer à une variable booléenne est la permutation. Cela change la valeur du booléen en son opposé (vrai devient faux, faux devient vrai). Les lignes :
WHEN DO [permuter] [bool : interrupteur] et WHEN DO [bool : interrupteur] [égale] [pas] [bool : interrupteur]
sont équivalentes.

Plus d'informations sur les booléens


Variable objet

Objet[]

Les variables d'objet pointent sur des objets du jeu. Chaque objet possède une variable [moi] qui réfère à lui-même, ou encore une variable [créateur] qui réfère à l'objet qui l'a créé (s'il a été créé). Vous pourriez utiliser une variable d'objet pour garder en mémoire la cible à attaquer.

Il est souvent très utile d'enregistrer un objet que l'on crée dans une variable d'objet. Vous pouvez écrire :
WHEN DO [obj : arme] [égale] [créer] [Arc rustique]
Cela vous permet de vous souvenir de l'arc que vous avez créé pour ensuite faire des choses comme l'équiper, ou changer les dommages qu'il inflige.

Plus d'informations sur les objets


Variable ensemble d'objet

Ensemble d'objets[]

Un ensemble d'objets est juste un groupe d'un ou plusieurs objets. Tout objet a ses [liens], ou son [inventaire]. Les ensembles d'objets prédéfinis sont généralement suffisants pour la plupart des objets. Ceci dit, chaque fois que vous voulez vous référer à des objets dans un groupe, vous pouvez les ajouter à un ensemble d'objet.

Les ensembles d'objets commencent vide, vous pouvez leur ajouter des objets en utilisant la tuile [augmente de]. D'une manière générale, vous pouvez ajouter des objets ou des ensembles d'objets, cela donnera l'ensemble qui contient tous ces objets. Vous pouvez retirer un objet ou un ensemble d'objet en utilisant [soustraire de].

Il est possible de trouver les objets d'un ensemble d'objets qui correspondent à un critère spécifique avec des tuiles comme [objets devant] ou [objets plus proches que], ou en spécifiant le type d'objet. Par exemple, [inventaire] [sélection de galerie : Flèche rustique] donnera l'ensemble des flèches qui sont dans l'inventaire.

Plus d'informations sur les ensembles d'objets


Variable vecteur

Vecteur[]

Les variables de vecteur sont utiles en diverses occasions. Ce sont des triplets de nombres (x; y; z) qu'on appelle coordonnées. Ils peuvent en réalité définir deux objets différents : des vecteurs ou des points.

Un vecteur définit une direction et une norme ([longueur]), il est représenté par une flèche. Un point définit une position précise de l'espace. Tous les objets possèdent de multiples vecteurs, pour leurs directions : [haut], [bas], [gauche], [droite], [avant], [arrière], ou leur [vélocité]. Ils ont aussi des points comme [position] ou [centre].

Les vecteurs sont utiles pour contrôler la direction dans laquelle pointe les objets. Vous pourriez avoir envie de les utiliser pour demander à tirer plusieurs flèches dans différentes directions, ou pour garder un objet à un écart constant de votre personnage.

Plus d'informations sur les vecteurs / points


Variable cerveau

Cerveau[]

Une variable de cerveau pointe vers un des cerveaux d'un objet. Ils vous permettent d'accéder aux propriétés du cerveau concerné, comme le [nom cerveau], le [nom placement] ou le [nom canal]. Il vous permet de contrôler le cerveau en modifiant sa [page actuelle], ou de savoir si [le cerveau est activé].

Si le cerveau vers lequel pointe la variable de cerveau est enlevé d'une manière ou d'une autre, la variable de cerveau deviendra « aucun cerveau ».

Plus d'informations sur les cerveaux


Variable couleur

Couleur[]

La couleur est utile par exemple pour spécifier la couleur d'éléments affichés, de l'objet, ou d'autres choses encore. Chaque objet possède une [couleur primaire], [couleur secondaire] et [couleur tertiaire]. Vous pourriez utiliser une variable de couleur pour modifier la couleur d'un texte ou d'un icône affiché à l'écran.

Plus d'informations sur les couleurs


Param. de caméra téléscopique

Paramètres caméra télescopique[]

Ceci est une variable spéciale qui garde en mémoire plusieurs paramètres de caméra : l'[inclinaison], le [lacet], la [distance] et le [décalage cible]. Utilisée seulement pour les caméras télescopiques. Vous pouvez modifier chaque paramètre indépendamment, ou définir la variable directement à l'aide de l'[Éditeur caméra télescopique en monde].


Paramètres de caméra fixe

Paramètres caméra fixe[]

Ceci est une variable spéciale qui garde en mémoire plusieurs paramètres de caméra : l'[inclinaison], le [lacet], la [distance] et le [décalage cible], . Utilisée seulement pour les caméras fixes. Vous pouvez modifier chaque paramètre indépendamment, ou définir la variable directement à l'aide de l'[Éditeur caméra fixe monde].


Valeurs par défaut[]

Nous savons que l'on peut assigner une valeur à une variable, mais que se passe-t-il si on utilise une variable avant qu'on lui ait donné une valeur ? Dans la plupart des langages de programmation, cela renverrait une erreur, mais dans Project Spark, la variable obtient une valeur par défaut. Cette valeur est différente pour chaque type de variable.

Valeur par défaut d'une variable...

... nombre : [0]

Défaut - nombre

... texte : pas de texte, c'est-à-dire le texte vide [""]

Défaut - texte

... booléen : [FAUX]

Défaut - booléen

... objet : [rien]*

Défaut - objet

... ensemble d'objets : ensemble vide, c'est-à-dire ensemble d'objets ne contenant aucun objet*

... vecteur : [zéro], c'est-à-dire le vecteur (0; 0; 0)

Défaut - vecteur

... cerveau : pas de cerveau**

... couleur : (1; 1; 0,5) en TSL (Teinte, Saturation, Luminance)***

Notes :
[*] [rien] est en réalité une tuile que vous pouvez utiliser. Vous pouvez toujours demander si [variable d'objet] [égal à] [rien]. Cela veut simplement dire que la variable n'a pas d'objet sur qui pointer.
Demander si un ensemble d'objets est égal à [rien] renverra toujours faux, car [rien] est bien un objet et n'est pas considéré comme un ensemble d'objets dans ce cas. Pour regarder si un ensemble d'objets est vide, demandez [pas] [ensemble d'objets].

[**] Il n'y a pas de tuile spécifique pour vérifier si une variable de cerveau ne contient pas de cerveau, mais vous pouvez demander [pas] [cerveau]. À noter qu'un cerveau ne contenant aucune ligne de kode est équivalent à aucun cerveau.

[***] Cette valeur n'est pas accessible, il n'est donc pas possible de tester si une variable couleur n'a jamais été définie auparavant. Une bonne initiative serait donc d'initialiser toute variable couleur avant de faire des tests dessus, en utilisant par exemple la tuile [aucune couleur] qui correspond à (0; 0; 0) en TSL, et qui, elle, peut être testée.
Ce problème a été signalé à la Team Dakota dans le ticket #1719.

Ces valeurs par défauts sont particulièrement importantes pour évaluer les conditions avec des variables.


Portée des Variables[]

Variable Locale (Objet)[]

Variable locale (objet)

Si vous n'ajoutez pas la tuile [global] devant une variable, celle-ci est locale. Chaque objet a ses propres variables locales (comme la vitesse, la position, etc.). Par exemple, si vous initialisez une variable « nombre » à 1 à l'intérieur d'un objet A avec le kode [nombre] [égale] [1], elle ne sera pas initialisée dans un objet B. Si vous voulez modifier ou accéder à la valeur d'une variable d'un autre objet, vous devez spécifier l'objet devant la variable, avec la sélection en monde ou avec une variable d'objet (par ex. [sélection en monde : objet B] [nombre] [égale] [1]).

Notez qu'une telle variable est locale à un objet, et non à un cerveau. Donc si vous désactivez le cerveau d'un objet, vous pourrez toujours accéder aux variables locales à partir du cerveau des autres objets, et si un objet a plusieurs cerveaux, changer la valeur d'une variable dans un de ses cerveaux la changera dans tous.

Variable Locale (Cerveau)[]

Project Spark vous permet d'ajouter plusieurs cerveaux à un même objet, et chaque cerveau possède des variables qui lui sont propres. En ajoutant le cerveau que vous voulez avant le nom de la variable, vous indiquez que vous utilisez la variable spécifique à ce cerveau précis. Cela veut dire que vous pouvez travailler avec des cerveaux multiples dans un objet et éviter que leurs kodes aient des variables qui interfèrent entre elles.

Pour des informations détaillées sur le fonctionnement des variables locales à un cerveau, allez voir Multibrains & Variables scopes (en Anglais).

Variable Globale[]

Variable globale

Vous pouvez ajouter [global] devant une variable. Dans ce cas, la variable est globale et n'est spécifique à aucun objet, elle est unique dans tout le jeu, et est accessible par tous les objets.

Même si « global » n'est pas indiqué pour [position souris], [tous les objets], ou les équipes, ce sont des bons exemples de variables globales. Si vous voulez faire un jeu solo, ce serait une bonne idée de créer une variable globale numérique « score ».


À lire ensuite[]

Conditions dans le When


Pour plus d'information[]

Timing et logique

Liste des tuiles


< Retour à l'Apprentissage du Kode

Advertisement