#K$ ModifieTableCouranteAvecTexteFormate

Syntaxe 

ModifieTableCouranteAvecTexteFormate(string, real, const1, const2)
Description

Pour chaque caractère dans la chaîne, modifie la table d’objets courante en y copiant séquentiellement les objets d’autres tables, obtenus d’après le code ASCII du caractère. Outre les caractères ordinaires, la chaîne peut contenir les séquences suivantes pour le formatage, à tout endroit dans le texte. Les valeurs associées à un type de contrôle sont actives jusqu’à la recontre d’une séquence modifiant le paramètre
/L:		saut de ligne
/Wnnn:		nouvelle largeur des caractères qui suivent, avec nnn en millimètres
/Hnnn:		nouvelle hauteur de ligne, avec nnn en millimètres
/Cnnn:		code couleur/police (nnn est un index identifiant une table d’objets)
/Rnnn:		rayon de positionnement aléatoire, avec nnn en millimètres
/Jc:		type de justification, c valant (L)eft, (R)ight, ou (C)enter
/Znnn:		facteur d’échelle des caractères. Ce facteur s’applique également aux parmètres de W et H.
//:		pour insérer un caractère ‘/’
/::		pour insérer un caractère ‘ :’

Par défaut, le formatage est initialisé avec les valeurs correspondant aux codes :
/W1000:/H2000:/C0:/JL:/R0:/Z0:
Sur une même ligne, les caractères sont espacés un à un de la largeur courante. La position peut être décalée aléatoirement dans le rayon aléatoire courant. Quand un ligne est pleine, la suivante commence une hauteur de ligne courante en dessous.
Le second argument est la largeur maximale d’une ligne, en mètres. A défaut de coupure de ligne par /L:, cette procédure fait des coupures automatiques pour que le nombre de caractères sur une ligne ne dépasse pas la largeur maximale.
Les arguments suivants indiquent les indices de début et de fin des caractères à afficher dans le texte fourni. Si le second argument vaut –1, toute la chaîne est prise en compte.
Remarque(s)

La procédure ne fait pas de différence entre minuscules et majuscules (pour l’instant).
Si la chaîne de caractères est plus longue qu’il n’y a d’objets dans la table courante, les caractères suivants sont ignorés.
Cette procédure fonctionne en conjonction avec une animation spéciale, dont chaque canal référence les objets consécutivement dans la table courante. La position de chaque canal est recalculée par le formatage.
Pour que la positionnement dans l’espace fonctionne, il faut impérativement que la procédure ControlerPlusieursModules() soit appelée avant celle-ci (de même qu’il faut appeler ControlerModule() avant d’appeler une procédure de repositionnement de module).
Les caractères sont alignés selon l’axe X local de l’acteur pour former les lignes, et les lignes sont alignées selon l’axe Z local de l’acteur, pour former la page.
Exemple(s)
; on prend le contrôle des 30 premiers canaux de l’animation (qui doit en comporter suffisamment pour contenir tous les caractères de la phrase)
ControlerPlusieursModules(30)
; on sélectionne une table d’objets qui comporte suffisamment d’emplacements (pour qu’il n’y ait pas de problème, chaque instance de la même famille doit sélectionner une table d’objets différente).
ChangeTableObjectCourante(“ 01011.tbl ”)
; remplit la table d’objets avec toute la phrase (on note qu’on réduit la largeur de lettre pour le i.
ModifieTableCouranteAvecTexteFormate(“cec/W015:i/W030: est/L:un texte”, “ ceci est un texte ”, 25.0, 0, -1)