Le format JOB (JvRoad Object) - ArtigueOlivier/JvRoad GitHub Wiki

JvRoad documentation > Manuel de référence > Le format JOB (JvRoad Object)

Structure des fichiers .job

La structure des fichiers .job se décompose en deux sections:

  • [Definition] : C'est l'entête du fichier
  • [Draw] : Contient la liste des instructions de dessin Note: Merci de respecter la case. Le langage est sensible aux majuscules. Pour réduire au maximum les problèmes dans ce domaine

La section: Entête ([Definition])

Elle comporte les entrées suivantes:

Title

Elle prend en valeur une chaîne de caractères qui correspond au titre de l'objet. Exemple:

Title=Cible

Symetry

La grille des objets comporte cent cases selon une matrice de 10 par 10. Dans chaque case, on peut placer un objet. Chaque case est composée à son tour d'une matrice de points de 51 par 51. L'espace entre chaque point dépend de la largeur et de la hauteur de la case. Si la largeur et la hauteur n'ont pas la même valeur, alors l'espace entre les points ne sera pas le même horizontalement et verticalement. Si vous souhaitez dessiner un rectangle c'est pas gênant, en revanche si vous souhaitez dessiner un cercle, ça ne va pas marcher ! Vous allez obtenir une ellipse. Toutefois si vous choisissez d'activer le mode Symetry, alors l'espace entre les points sera identique verticalement et horizontalement. Ce qui permettra de tracer un beau cercle sans problème. Lorsque vous activez le mode Symetry, la plus petite des valeurs entre la largeur et la hauteur est retenue pour calculer l'espace entre les points. Quant à la grille de points, elle est dans ce cas centrée par rapport à la case. Pour activer le mode Symetry, il faut indiquer la valeur 1, sinon, il faut mettre 0. Exemple mode Symetry activé

Symetry=1

Exemple complet d'entête

[Defintion]
Title=Cible
Symetry=1

La section: Instructions de dessin ([Draw])

Cette section comporte l'ensemble des instructions de dessin de l'objet dans la carte des objets. La grille des points a une résolution de 51 par 51. Pour l'instant, les dessins sont en noir et blanc. Les instructions de dessin permettent d'effectuer des tracés en noir sur un fond blanc à moins de changer le paramétrage des couleurs au niveau du logiciel.

L'entrée Count

Elle prend une valeur entière qui indique le nombre d'instruction de dessin. Exemple, on déclare 6 instructions de dessin

Count=6

Les entrées de dessin

Elles sont de la forme suivante

Action=;

  • <x> est le numéro de l'action, il commence à 0.
  • <code du tracé> est un mot clé qui indique le type de tracé à effectuer
  • <paramètres du tracé> est la liste des paramètres correspondant au <code du tracé>. Chaque paramètre est séparé par un point virgule.

Tracé: Ligne

Permet de tracer une ligne d'un point de départ à un point d'arrivée. Code: LIGNE ou LINE.

Paramètres

Nom Type de valeur Signification
xi Valeur entière comprise entre 0 et 50 Point de départ en x
yi Valeur entière comprise entre 0 et 50 Point de depart en y
xf Valeur entière comprise entre 0 et 50 Point d'arrivée en x
yf Valeur entière comprise entre 0 et 50 Point d'arrivée en y

Exemple de syntaxe théorique

Action=LINE;xi;yi;xf;yf;

Exemple concret

Action0=LINE;2;2;45;40;

Tracé: Rectangle

Permet de tracé un rectangle dont l'intérieur est transparent. Le point initial est en haut à gauche, tandis que le point final est en bas à droite. Code: RECT

Paramètres

Nom Type de valeur Signification
xi Valeur entière comprise entre 0 et 50 Point de départ en x
yi Valeur entière comprise entre 0 et 50 Point de depart en y
xf Valeur entière comprise entre 0 et 50 Point final en x
yf Valeur entière comprise entre 0 et 50 Point final en y

Exemple de syntaxe théorique

Action=RECT;xi;yi;xf;yf;

Exemple concret

Action0=RECT;2;2;45;40;

Tracé: Pavé ou rectangle plein

Permet de tracé un rectangle dont l'intérieur est plein. Le point initial est en haut à gauche, tandis que le point final est en bas à droite. Code: PAVE

Paramètres

Nom Type de valeur Signification
xi Valeur entière comprise entre 0 et 50 Point de départ en x
yi Valeur entière comprise entre 0 et 50 Point de depart en y
xf Valeur entière comprise entre 0 et 50 Point final en x
yf Valeur entière comprise entre 0 et 50 Point final en y

Exemple de syntaxe théorique

Action=PAVE;xi;yi;xf;yf;

Exemple concret

Action0=PAVE;2;2;45;40;

Tracé: Ellipse

Permet de tracé une ellipse dont l'intérieur est transparent. L'ellipse s'inscrit dans un rectangle délimité par deux point. Le centre de l'ellipse correspond au centre du rectangle (intersection des diagonales du rectangle). Le point initial est en haut à gauche, tandis que le point final est en bas à droite. Si Le mode Symetry est activé et que largeur et la hauteur du rectangle sont identiques, alors on obtient un cercle. Code: CERCLE ou CIRCLE

Paramètres

Nom Type de valeur Signification
xi Valeur entière comprise entre 0 et 50 Point de départ en x
yi Valeur entière comprise entre 0 et 50 Point de depart en y
xf Valeur entière comprise entre 0 et 50 Point final en x
yf Valeur entière comprise entre 0 et 50 Point final en y

Exemple de syntaxe théorique

Action=CIRCLE;xi;yi;xf;yf;

Exemple concret

Action0=CIRCLE;2;2;45;40;

Tracé: Ellipse pleine

Permet de tracé une ellipse dont l'intérieur est plein. L'ellipse s'inscrit dans un rectangle délimité par deux point. Le centre de l'ellipse correspond au centre du rectangle (intersection des diagonales du rectangle). Le point initial est en haut à gauche, tandis que le point final est en bas à droite. Si Le mode Symetry est activé et que largeur et la hauteur du rectangle sont identiques, alors on obtient un cercle. Code: ELLIPSE

Paramètres

Nom Type de valeur Signification
xi Valeur entière comprise entre 0 et 50 Point de départ en x
yi Valeur entière comprise entre 0 et 50 Point de depart en y
xf Valeur entière comprise entre 0 et 50 Point final en x
yf Valeur entière comprise entre 0 et 50 Point final en y

Exemple de syntaxe théorique

Action=ELLIPSE;xi;yi;xf;yf;

Exemple concret

Action0=ELLIPSE;2;2;45;40;

Tracé: Arc

Permet de tracé un arc. L'arc s'inscrit dans un rectangle délimité par deux point. Le point initial est en haut à gauche, tandis que le point final est en bas à droite. Code: ELLIPSE

Paramètres

Nom Type de valeur Signification
xi Valeur entière comprise entre 0 et 50 Point de départ en x
yi Valeur entière comprise entre 0 et 50 Point de depart en y
xf Valeur entière comprise entre 0 et 50 Point final en x
yf Valeur entière comprise entre 0 et 50 Point final en y
ai Valeur entière comprise entre 0 et 359 Angle de départ en degrés
af Valeur entière comprise entre 0 et 359 Angle d'arrivée en degrés

Exemple de syntaxe théorique

Action=ARC;xi;yi;xf;yf;ai;af;

Exemple concret

Action0=ELLIPSE;2;2;45;40;0;90;

Exemple complet d'une section d'instructions de dessin

[Draw]
Count=6
Action0=CERCLE;0;0;50;50;
Action1=CERCLE;5;5;45;45;
Action2=LINE;0;25;10;25;
Action3=LINE;40;25;50;25;
Action4=LINE;25;0;25;10;
Action5=LINE;25;40;25;50;

Exemple complet d'un fichier objet au format JOB

[Definition]
Title=Cible
Symetry=1

[Draw]
Count=6
Action0=CERCLE;0;0;50;50;
Action1=CERCLE;5;5;45;45;
Action2=LINE;0;25;10;25;
Action3=LINE;40;25;50;25;
Action4=LINE;25;0;25;10;
Action5=LINE;25;40;25;50;
⚠️ **GitHub.com Fallback** ⚠️