Travailler avec des Mondes
Des fois, un jeu a un monde vaste qui est séparé en plusieurs cartes pour que le monde soit plus gérable par le jeu (moins d’utilisation de mémoire) ou plus facile à éditer par plusieurs personnes (éviter les conflits de fusion). Il serait utile si les cartes d’un tel monde soient visibles dans la même vue, et d’être capable de rapidement passer d’une carte à une autre pour l’édition. La définition d’un monde vous permet de faire exactement cela.
Définir un Monde
Un monde est défini dans un fichier .world
, qui est un fichier JSON disant à Tiled quelles cartes font partie du monde et à quel emplacement. Les mondes peuvent être créés en utilisant l’action Carte > Nouveau Monde….
Vous pouvez aussi créer des fichiers .world à la main. Voici un exemple simple de la définition d’un monde, qui définit la position globale (en pixels) de trois cartes :
{
"maps": [
{
"fileName": "001-1.tmx",
"x": 0,
"y": 0
},
{
"fileName": "002-1.tmx",
"x": 0,
"y": 3200
},
{
"fileName": "006-1.tmx",
"x": 3840,
"y": 4704
}
],
"type": "world"
}
Une fois défini, un monde doit être chargé en sélectionnant Monde > Charger Monde… depuis le menu. De nombreux mondes peuvent être chargés en même temps, et les mondes seront automatiquement rechargés au redémarrage de Tiled.
Quand une carte est ouverte, Tiled vérifie si elle fait partie d’un des mondes chargés. Si c’est le cas, toutes les autres cartes du même monde sont aussi chargées et affichées à côté de la carte ouverte. Vous pouvez cliquer sur n’importe quelle des autres cartes pour les ouvrir en mode édition, ce qui va changer le fichier courant tout en gardant la vue sur la même position.
Les mondes sont automatiquement rechargés quand leur fichier est changé sur le disque.
Éditer des Mondes
Lorsque vous avez chargé un monde, vous pouvez sélectionner “l’Outil Monde” depuis la barre d’outils pour ajouter, enlever ou déplacer des cartes dans le monde.
- Ajouter des Cartes
Cliquez sur le bouton “Ajouter la carte courante à un monde chargé” sur la barre d’outils, et depuis le menu déroulant sélectionnez le monde auquel vous voulez ajouter cette carte. Pour ajouter une carte différente au monde courant, vous pouvez utiliser le bouton “Ajouter une autre carte dans le monde courant” depuis la barre d’outils. Alternativement, on peut accéder aux deux actions en faisant un clic droit sur l’éditeur de carte.
- Enlever des Cartes
Appuyez sur le bouton “Supprimer la carte courante du monde courant” dans la barre d’outils. Alternativement, faites un clic droit sur l’éditeur de carte et sélectionnez l’action “Supprimer … du Monde …” depuis le menu contextuel.
- Déplacer des Cartes
Glissez tout simplement les cartes dans l’éditeur de carte. vous pouvez annuler le déplacement d’une carte en appuyant sur “Échap” ou en faisant un clic droit.
Alternativement vous pouvez utiliser les flèches directionnelles pour déplacer la carte couramment sélectionnée - maintenir Maj va réaliser des pas plus grands.
- Sauvegarder des fichiers de Monde
Vous pouvez sauvegarder les fichiers de mondes en utilisant le menu Monde > Sauvegarder le monde. Les mondes seront aussi automatiquement sauvegardés si vous lancez n’importe quel outil qui a l’option “Sauvegarder la Carte Avant Exécution” activée.
Utiliser la Correspondance de Motif
Pour les projets dans lesquels les cartes suivent un certain style de nommage qui permet la définition de la position de chaque carte dans le monde en utilisant le nom de fichier, une expression régulière peut être utilisée en combinaison avec un multiplicateur et un décalage.
Note
Pour le moment aucune interface n’existe pour définir un monde en utilisant une correspondance de motif dans Tiled, et elle ne peut non plus être modifiée. Les motifs de fichiers monde doivent être édités manuellement.
Voici un exemple :
{
"patterns": [
{
"regexp": "ow-p0*(\\d+)-n0*(\\d+)-o0000\\.tmx",
"multiplierX": 6400,
"multiplierY": 6400,
"offsetX": -6400,
"offsetY": -6400
}
],
"type": "world"
}
L’expression régulière est respectée pour tous les fichiers placés dans le même répertoire que le fichier de monde. Il capture deux nombres, le premier est gardé en tant que x
et le deuxième en tant que y
. Ceux-ci sont ensuite multipliés par multiplierX
et multiplierY
respectivement, et enfin offsetX
et offsetY
sont ajoutés. Le décalage existe surtout pour permettre plusieurs collections de cartes du même monde d’être positionnées par rapport aux autres. La valeur finale devient la position (en pixels) de chaque carte.
Une définition de monde peut utiliser une combinaison de cartes manuellement définies et de motifs.
Seulement Montrer les Voisins Directs
Tiled fait bien attention à ne charger chaque carte, jeu de tuiles et image qu’une seule fois, mais parfois le monde est juste trop grand pour être chargé complètement. Peut-être qu’il n’y a pas assez de mémoire, ou le rendu de la carte entière est trop lent.
Dans ce cas, il y a une option pour seulement charger les voisins directs de la carte courante. Ajoutez "onlyShowAdjacentMaps": true
dans l’objet JSON à la racine.
Pour que ceci soit possible, les positions mais aussi les tailles de chaque carte doivent être définies. Pour les cartes individuelles, c’est fait à travers les propriétés width
et height
. Pour les motifs, les propriétés sont mapWidth
et mapHeight
, qui sont les multiplicateurs définis par défaut par convenance. Toutes les valeurs sont en pixels.
Note
Dans le futur, une propriété peut être ajoutée pour permettre la spécification de la distance autour de la carte courante dans laquelle les autres cartes sont chargées.