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.

Custom properties are displayed in the Properties view. This view is context-sensitive, usually displaying the properties of the last selected object. It also supports multi-selection, for changing the properties of many objects at once.

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é.

New in Tiled 1.8

Custom Types

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

Custom Types Editor

Custom Types Editor

Note

These types are automatically saved in the project file. Hence you need to create a project, before you can set up your custom 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.

New in Tiled 1.9

Each data type has a « Class » property, which can be used to refer to a custom class. The members of this class will then be directly available as custom properties of that instance (before Tiled 1.9, this feature was only available for objects and tiles as the « Type » property).

Each class can also have a custom color, which is used to make objects more recognizable. The class color is used when rendering shape objects, object name labels and connections between objects.

In the JSON and Lua file formats, custom class properties used as property values 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).

Since Tiled 1.0

Tuiles Typées

If you’re using tile objects, you can set the class on the tile to avoid having to set it on each object instance. Setting the class on the tile makes the predefined properties visible when having the tile selected, allowing to override the values. It also makes those possibly overridden values visible when having a tile object instance selected, again allowing you to override them.

An example use-case for this would be to define custom classes like « NPC », « Enemy » or « Item » with properties like « name », « health » or « weight ». You can then specify values for these on the tiles representing these entities. And when placing those tiles as objects, you can override those values if you need to.

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 !