Propriétés Personnalisées

Un des atouts de Tiled est qu’il permet de définir des propriétés personnalisées sur l’ensemble de ses structures de données. De cette manière, il est possible d’inclure de nombreuses formes d’information personnalisées, qui peuvent être ensuite utilisées par votre jeu ou par l’environnement que vous utilisez pour intégrer les cartes de Tiled.

Les propriétés personnalisées sont affichées dans la vue Propriétés. Cette vue dépend du contexte, on l’obtient généralement en affichant les propriétés du dernier objet sélectionné. Pour les tuiles dans un jeu de tuiles ou des objets sur un calque d’objets, il prend également en charge la multi-sélection.

Propriétés de la Vue

Propriétés de la Vue

Ajout de Propriétés

When you add a property (using the “+” button at the bottom of the Properties view), you are prompted for its name and its type. Tiled supports the following basic property types:

  • bool (true (vrai) ou false (faux))

  • color (une valeur de couleur sur 32 bits)

  • file (le chemin relatif d’un fichier)

  • float (un nombre à virgule flottante)

  • int (un nombre entier)

  • object (une référence vers un objet) - Depuis Tiled 1.4

  • string (n’importe quel texte, y compris un texte multi-ligne)

Ajouter la Boîte de Dialogue de Propriété

Ajouter la Boîte de Dialogue de Propriété

Le type de propriété est utilisé pour choisir un éditeur personnalisé dans la vue Propriétés. Le choix d’un type de nombre ou de booléen permet également d’éviter que la valeur obtenue en JSON et Lua soit citée dans les exportations.

Since Tiled 1.4

Le menu de contexte pour les propriétés de fichiers personnalisées offre un façon rapide d’ouvrir le fichier dans votre éditeur préféré. Pour les références d’objet, il y a une action pour sauter rapidement vers l’objet référencé.

Since Tiled 1.8

Custom Property Types

In addition to the basic property types listed above, you can define custom property types in your project. Tiled supports custom enums and custom classes.

Property Types Editor

Property Types Editor

Avertissement

The property types are automatically saved in the project file. Make sure you have set up your project, before setting up your property types.

Custom Enums

An enum is useful if you want to limit the options for a certain property to a fixed set of values.

An enum also defines how its value is saved. It can be saved as a string, saving one of its values directly. Alternatively it can be saved as a number, the index of the current value in the list of values. The former is more readable whereas the latter could easier and more efficient to load.

Finally, an enum can also allow multiple values to be chosen. In this case each option is displayed with checkbox. When saving as string, a comma-separated list is used and when saving as number the selected indexes are encoded as bitflags.

Custom Classes

A class is useful if you want to be able to add a set of properties at once, with predefined defaults. It can also prevent excessive prefixing of property names. Classes can have members referring to other classes.

In the JSON and Lua file formats, custom class properties are saved using the native object and table constructs.

Since Tiled 1.0

Héritage des Propriétés de Tuile

Lorsque des propriétés personnalisées sont ajoutées à une tuile, ces propriétés seront également visibles lorsqu’une instance de l’objet de cette tuile est sélectionnée. Cela permet de réécrire facilement les propriétés associées à une tuile pour chaque objet. Cela devient particulièrement utile lorsqu’il est combiné avec des Tuiles Typées.

Les propriétés héritées seront affichées en gris (couleur de texte désactivée), tandis que les propriétés ré-écrites seront affichées en noir (couleur de texte habituelle).

Propriétés Prédéfinies

Paramètres Généraux

Normalement, vous n’utilisez qu’un nombre limité de types d’objets dans votre jeu, et chaque type d’objet a un nombre fixe de propriétés possibles, avec des types spécifiques et des valeurs par défaut. Pour économiser votre temps, Tiled permet de prédéfinir ces propriétés en se basant sur le champ « Type » des objets. Vous pouvez le mettre en place en utilisant l’Éditeur de Type d’Objet disponible depuis le menu « Vue ».

Éditeur de Type d'Objet

Éditeur de Type d’Objet

Par défaut, Tiled stocke ces types d’objets de façon globale. Cependant, comme vous voudrez souvent les partager avec les autres personnes de votre projet, vous pouvez exporter ces types d’objets ou modifier le répertoire d’enregistrement des fichiers de types d’objets pour votre projet. Un simple fichier XML ou JSON avec un contenu auto-explicatif est utilisé pour stocker vos types d’objets.

La couleur n’affecte pas seulement le rendu des différentes formes d’objets, mais aussi la couleur de l’étiquette qui apparaîtra si vous donnez un nom à votre objet.

Pour faire apparaître les propriétés prédéfinies dans la vue Propriétés, tout ce que vous devez faire est d’entrer le nom et le type dans la propriété « Type » intégrée. Normalement, c’est ce que vous faites de toute façon pour indiquer à votre moteur de jeu quel genre d’objet il utilise.

Since Tiled 1.0

Tuiles Typées

Si vous utilisez des objets tuiles, vous pouvez indiquer le type sur la tuile pour éviter d’avoir à l’indiquer sur chaque instance de l’objet. Mettre en place le type sur la tuile rend les propriétés prédéfinies visibles quand la tuile est sélectionnée, permettant de modifier les valeurs. Cela rend également possible l’affichage des valeurs modifiées lorsque l’on a une instance d’un objet tuile sélectionnée, permettant de les modifier une nouvelle fois.

Un exemple de cas d’utilisation serait de définir des types personnalisés comme « PNJ », « Ennemi » ou « Objet » avec des propriétés comme « Nom », « Santé » ou « Poids ». Vous pouvez ensuite spécifier les valeurs pour ces propriétés sur les tuiles qui représentent ces entités. Quand vous placez ces tuiles comme des objets, vous pouvez si besoin ré-écrire ces valeurs.

Futures Extensions

Il y a plusieurs types de propriétés personnalisées que j’aimerais ajouter :

  • Customized basic properties, where you can set properties like the minimum or maximum value, the precision or a different default value.

  • Propriétés de liste, qui seraient des propriétés ayant une liste de valeurs (#1493).

À part pour prédéfinir les propriétés basées sur un type d’objet, J’aimerais ajouter un support pour prédéfinir les propriétés pour chaque type de données. Définissant ainsi que chaque propriété personnalisée est valide pour les maps, groupes de tuiles, niveaux, etc. (#1410)

Si vous aimez au moins un seul de ces points, s’il-vous-plaît aidez-moi à y arriver plus vite en supportant le développement de Tiled. Plus je recevrai de soutien, plus j’aurais les moyens de passer du temps à améliorer Tiled !