Un script est lancé quand on frappe son nom en ligne de commande. C'est une sorte de macro généralisé
Les mots d'un script sont tous pris dans le dictionnaire
Les mots du dictionnaire commandent des fonctions dans Roxame, très souvent par l'appel d'un nom général (Filter) renvoyant à diffférentes cas de figure par des case)
On commence toujours par
FilmName donne le nom du film, et
Basis, qui donne les dimensiosn de l'image en en appelant une
new crée une nouvelle page, en général en remplaçant tout le précédent par une nouvelle image place en background.
le chiffres suivant ????
NP case 89 : hInpage = 0; R(0); //à voir , était fait pour Pres. ne plus utiliser, sans doute.
Puis on travaille sur la page avec
FL remet l'écriture en tête de page
LL indiquent une position dans la page
SPL. strong point on left
SPR. strong point on right
center
HLC coin haut gauche, HRC coin haut droite, LLC coin bas gauche, LRC, coin bas drote
at_right,
at_left,
above,
under . Positions relatives
tpg
brim_to_brim
brim_to_brim
inlay ://marche sans doute pas
h_mob //à voir
/v_mob
h_sine_mob
v_sine_mob
ellipse_mob
On écrit du texte,
H1, H2 fixent la taille du texte
redtext, greentext, bluetext, blacktext, whitetext, yellowtext, siennatest sepiatext donnent la couleur du texte
textcolor suivi d'aun chiffre, indiquant le numéro dans la série VGA
< suivi d'un expace débute une ligne en français
> id en anglais.
| quelle que soit la langue
(ceci permet d'avoir une exécution du script avec des affichages en français ou en anglais selon que l'on a fixé le paramètre
On écrit des formes
paint et draw selon qu'elles sont pleines ou creuses
form_fix 30 0 0 0 thick ascend 102 54 5
cette ligne, començant par form_fix, (service 1374) commande le dessin d'une forme, suivi des paramètres :
-
30 est le type de forme...
- 0 position (ou brim to brim)
- 0 T (dimension de la forme)
-0 Q proportion de la forme
- thick : épaisseur
- ascent orientation montante ou descendante
- couleur dans la gamme VGA , 101 couleur au hasard dans le cube RGB , 102 au hasard dans la game VGA , 103 blink, 110 hue rotation, 111 sat rotation
-
- 5 frameQuantity
case 1322 : refMixClipType = 1; refMixType = 1; refMovetype = 0; break; //curtain_S
case 1323 : refMixClipType = 1; refMixType = 2; refMovetype = 0; break; //curtain_N
case 1324 : refMixClipType = 1; refMixType = 3; refMovetype = 0; break; //curtain_E
case 1325 : refMixClipType = 1; refMixType = 4; refMovetype = 0; break; //curtain_W
case 1326 : refMixClipType = 1; refMixType = 101; refMovetype = 0; break; //fading
case 1327 : refMixClipType = 1; refMixType = 102; refMovetype = 0; break; //blink1_2
case 1328 : refMixClipType = 1; refMixType = 103; refMovetype = 0; break; //blink1_4
case 1329 : refMixClipType = 1; refMixType = 104; refMovetype = 0; break; //blink3/5
case 1330 : refMixClipType = 1; refMixType = 6; refMovetype = 0; break; // subrractive_mix
case 1331 : refMixClipType = 1; refMixType = 0; refMovetype = 0; break; //background
case 1332 : refMixClipType = 1; refMixType = 7; refMovetype = 0; break; //additive_mix
case 1333 : refMixClipType = 1; refMixType = 8; refMovetype = 0; break; //max_winner_mix
case 1334 : refMixClipType = 1; refMixType = 9; refMovetype = 0; break; //min_winner_mix
case 1335 : refMixClipType = 1; refMixType = 10; refMovetype = 0; break; //nplusun
case 1336 : refMixClipType = 1; refMixType = 111; refMovetype = 0; break; //sine_vib
case 1337 : refMixClipType = 1; refMixType = 121; refMovetype = 0; break; //loop_prop
case 1338 : refMixClipType = 1; refMixType = 122; refMovetype = 0; break; //loop_prop_inf
case 1339 : refMixClipType = 1; refMixType = 123; refMovetype = 0; break; //tempo_blink
-
move_type fixe le paramèter refMovetype, au départ fixé à 0
keep_mode suivi d'un chiffre rixe le paramètre refKeopmode, au départ fixé à 0 , intervient dans l'instruction Filter et dans l'appel de mix (service 1320)
x_start, y_start, x_stop et y_stop donnent la position d'un rectangle
framecount (service 1310) suivi d'un chiffre, fixe le paramètre refMaxFrameCount
save_ crée un frame à partir de la page existante
stay crée une suite de frames identiques, le nombre étant indiqué
filter applique un film, précisé par la suite ee la ligne: nom du filtre, mode d'application (ex. curtain) et un nombre...
end termine le script
Diff. environnements.
Présentations
refTextFilenumber FileNumberlocate(wordtobedoneloc, "doc") . Pour trouver le texte dans dico
prestPagenumber ; numéo de page dans une présentation, fixé au départ à 0.
Environment_(17);
10 normal
13 dico
99 Tab, après dico ou présentatiaon
Scripts
lineTobedone = 1 , au départ
frameOutnumber = 0 au départ
nbscriptline = 1 au départ
scriptLength. obtenue au chargement
ScriptLineRead génère des scriptWord[numeroscriptWord]
scriptWordscount et scriptLineLength qui tous deux donnent le nombre mots, à utiliser par la fonction suivante :
scriptLineexe(int sscriptLine (numéro de la ligne) ,String exeLine la ligne elle-même)
Pour l'avenir
La génération de formes dans un pavé ne peut pas (ou très peu) varier aléatoiremne encours. On peut fixe aléatoirement aux deux bout (x,y,t), mais entre les deux il fau aller droit, ou un peu droit à la manière de renzied.
Quand on a un pavé extérieur (film), faire des analyse dessus temporelles (difg et autres mesures). En déduire des structures.
Rechercher des permanences.
Essayer de détecter des permanences dynamiques (une même forme se déplace...)
Pars of Roxame dedicated to presentation and films making
La construction temporelle
Cycles de la narrration, de la sonate.
Les vibrations.
if (CATEGORIES.equals("present")) {//println("in ddo present " + wordtobedoneloc);
try{refText = wordtobedoneloc; refSubdirectory = DEFINITION;
refTextFilenumber = FileNumberlocate(wordtobedoneloc, "doc") ;
textLoad(refDirectory + "data\\" + refSubdirectory + "\\" + wordtobedoneloc + ".txt", 0);
Scroll(wordtobedoneloc + " found");
}
catch (Exception e){ Scroll("presentation not found"); println("presentation not found"); }
prestPagenumber = 0;
Environment_(17);
}
7_pierres_p present 000 000 DU //OK dans dDO
Abstract1_p present 000 000 Test
tstx present 000 000 Test
Quant on lance un script (par exemple Film0) Roxame
charge le script, . au passage
- pour la ligne filmName
définit la taille 640x480 et donne le nom qui servira pour le stockage
- pour la ligne basis, chage l'image indiquée en img, ces dimensions définiront la taille de oute les aures images
puis, successivement
:
lit puis exécut chacune des lignes
Exécute les lignes en tenant compte de leur numéro (nbscriptLine).
La première ligne, elle peut fixer les dimensions de l'image (sinon, 640 par 480),
déclanche la création d etrois images identiques : img, imgx et imgy, et fixe le paramètre rex (couple).
Toutes les affichent img à partir de cornerx, cornery
puis exécutent l'opération commandée par le premier mot de la ligne
Film0 script 000 000 def
Test9 script 000 000 def
if (CATEGORIES.equals("script")) {println("in myscript");
try{
String loctxtAch_ = "..."; ;
Scroll("Script : " + wordtobedoneloc);
loctxtAch_ = "c:\\Roxame\\Scripts\\" + wordtobedoneloc + ".txt";
Scroll("PScript : " +loctxtAch_);
println(loctxtAch_);
BufferedReader config = new BufferedReader(new FileReader(loctxtAch_));
//refDialMode = 6;
scriptLoad(loctxtAch_);
cornerx = 150; cornery = 53;
lineTobedone = 1 ;
frameOutnumber = 0;
for (int nbscriptline = 1; nbscriptline < scriptLength ; nbscriptline++){
scriptLineRead(scriptLine[nbscriptline]);
scriptLineexe(nbscriptline, scriptLine[nbscriptline]);
//lineTobedone ++ ;
//if(lineTobedone >= scriptLength) exit();
}
}
//
catch (Exception e){ println("is config false");refDialMode = 0; }
}
ifalways cond 000 000 3... OK est dans DDo
ifisenloop cond 000 000 1
ifisfunny cond 000 000 2
ifisnormal cond 000 000 5
ifloop0 cond 000 000 10
ifloop1 cond 000 000 11
ifloop9 cond 000 000 19
ifnever cond 000 000 4
if (CATEGORIES.equals("cond")) condCat = false;
if (CATEGORIES.equals("cond")) boolCond = Condition(Integer.parseInt(DEFINITION));
if (CATEGORIES.equals("environ")) Environment_(Integer.parseInt(DEFINITION));
if (CATEGORIES.equals("font_")) {refFont = loadFont(DEFINITION); textFont(refFont); refFontName = wordtobedoneloc ;}
if service 000 000 1351
Si un terme de dico est de la catégorie cond, Roxame applique la fonction Condition qui donne des valeurs à plusieurs paramètres et retourne la valeur du booléen boolCond
ifalways cond 000 000 3
ifisenloop cond 000 000 1
ifisfunny cond 000 000 2
ifisnormal cond 000 000 5
ifnever cond 000 000 4
ifloop0 cond 000 000 10
ifloop1 cond 000 000 11
ifloop2 cond 000 000 12
ifloop3 cond 000 000 13
ifloop4 cond 000 000 14
ifloop5 cond 000 000 15
ifloop6 cond 000 000 16
ifloop7 cond 000 000 17
ifloop8 cond 000 000 18
ifloop9 cond 000 000 19
Si un terme de dico est de la catégorie loop, Roxame applique la fonction
loopService(Integer.parseInt(DEFINITION)); Definition n'est qu'un numéro envoyant aux fonctions:
loop0 loop 000 000 0
loop1 loop 000 000 1
loop1R loop 000 000 29
loop2 loop 000 000 2
loop3 loop 000 000 3
loop4 loop 000 000 4
loop5 loop 000 000 5
loop6 loop 000 000 6
loop7 loop 000 000 7
loop8 loop 000 000 8
loop9 loop 000 000 9
pour les cas de 0 à 9, loopservice affecte les variables
loopIndex[int1] = 0;
loopEnd[int1] = number ;
pour les autres cas, loopservice fait R(loopIndex[1]) ;
;
case 10 : loopIndex[0]++ ; if (loopIndex[0] < loopEnd[0]) intCond = true ; else intCond = false ; break;
case 11 : loopIndex[1]++ ; if (loopIndex[1] < loopEnd[1]) intCond = true ; else intCond = false ; break;
case 12 : loopIndex[2]++ ; if (loopIndex[2] < loopEnd[2]) intCond = true ; else intCond = false ; break;
case 13 : loopIndex[3]++ ; if (loopIndex[3] < loopEnd[3]) intCond = true ; else intCond = false ; break;
case 14 : loopIndex[4]++ ; if (loopIndex[4] < loopEnd[4]) intCond = true ; else intCond = false ; break;
case 15 : loopIndex[5]++ ; if (loopIndex[5] < loopEnd[5]) intCond = true ; else intCond = false ; break;
case 16 : loopIndex[6]++ ; if (loopIndex[6] < loopEnd[6]) intCond = true ; else intCond = false ; break;
case 17 : loopIndex[7]++ ; if (loopIndex[7] < loopEnd[7]) intCond = true ; else intCond = false ; break;
case 18 : loopIndex[8]++ ; if (loopIndex[8] < loopEnd[8]) intCond = true ; else intCond = false ; break;
case 19 : loopIndex[9]++ ; if (loopIndex[9] < loopEnd[9]) intCond = true ; else intCond = false ; break;
if (CATEGORIES.equals("text")) { refSubdirectory = DEFINITION ;
refTextFilenumber = FileNumberlocate(wordtobedoneloc, "text") ;
textName = wordtobedoneloc ;
}
Artistes text 000 000 Texts //OK dans Ddo
Variable_color, dans Ddo
if (CATEGORIES.equals("on")) condCat = false;
if (CATEGORIES.equals("present")) condCat = false;
if (CATEGORIES.equals("printing")) condCat = false;
if (CATEGORIES.equals("score")) condCat = false;
if (CATEGORIES.equals("script")) condCat = false;
if (CATEGORIES.equals("text")) condCat = false;
if (CATEGORIES.equals("variable_color")) condCat = false;
...