Scripts Python

Note

Depuis Tiled 1.3, Tiled peut être étendu en utilisant du JavaScript. L’API JavaScript fournit plus d’opportunités d’étendre les fonctionnalités de Tiled que l’ajout de formats de cartes personnalisés. Elle est complètement documentée et marche directement sur toutes les plateformes. Elle doit être préférée au greffon en Python si possible.

Tiled est distribué avec un greffon qui vous permet d’utiliser du Python 3 pour ajouter un support pour des formats de cartes personnalisés. C’est utile surtout car vous n’avez pas besoin de compiler Tiled vous-même et les scripts sont faciles à déployer sur toutes les plateformes.

Pour que les scripts soient chargés, ils doivent être placé dans ~/.tiled. Tiled vérifie si ce répertoire change, donc il n’y a pas besoin de relancer Tiled après avoir ajouté ou changé des scripts (cependant le répertoire doit exister avant de lancer Tiled).

Il y a plusieurs scripts d’exemple disponibles dans le dépôt.

Note

Pour créer le dossier ~/.tiled sur Windows, ouvrez l’invite de commande (cmd.exe), qui doit commencer dans votre dossier personnel par défaut, puis entrez mkdir .tiled pour créer le dossier.

Sur Linux, les dossiers commençant avec un point sont cachés par défaut. Dans la plupart des explorateurs de fichiers vous pouvez activer la visibilité des fichiers cachés en utilisant Ctrl+H.

Note

Depuis Tiled 1.2.4, les greffons en Python sont désactivés par défaut, car le chargement de ce greffon peut causer un plantage dépendant de la version de Python installée sur le système (#2091). Pour utiliser le greffon en Python, veuillez tout d’abord l’activer dans les Préférences.

Avertissement

On Windows, Python is not installed by default. For the Tiled Python plugin to work, you’ll need to install Python 3.8 (get it from https://www.python.org/). You will also need to check the box « Add Python 3.8 to PATH » in the installer:

../../_images/python-windows.png

On Linux you will also need to install the appropriate package. However, currently Linux builds are done on Ubuntu 20.04 against Python 3.8, and you’d need to install the same version somehow.

The Python plugin is currently not available for macOS releases.

Exemple de Greffon d’Exportation

Supposez que vous voulez une carte exportée dans le format suivant :

29,29,29,29,29,29,32,-1,34,29,29,29,29,29,29,
29,29,29,29,29,29,32,-1,34,29,29,29,29,29,29,
29,29,29,29,29,29,32,-1,34,29,29,29,29,29,29,
29,29,29,29,29,29,32,-1,34,29,29,29,29,29,29,
25,25,25,25,25,25,44,-1,34,29,29,29,29,29,29,
-1,-1,-1,-1,-1,-1,-1,-1,34,29,29,29,29,29,29,
41,41,41,41,41,41,41,41,42,29,29,24,25,25,25,
29,29,29,29,29,29,29,29,29,29,29,32,-1,-1,-1,
29,29,29,29,29,29,39,29,29,29,29,32,-1,35,41,
29,29,29,29,29,29,29,29,29,29,29,32,-1,34,29,
29,29,29,29,29,29,29,29,37,29,29,32,-1,34,29;

Vous pouvez réalisez ceci en sauvegardant le script example.py suivant dans le dossier de scripts :

from tiled import *

class Example(Plugin):
    @classmethod
    def nameFilter(cls):
        return "Example files (*.example)"

    @classmethod
    def shortName(cls):
        return "example"

    @classmethod
    def write(cls, tileMap, fileName):
        with open(fileName, 'w') as fileHandle:
            for i in range(tileMap.layerCount()):
                if isTileLayerAt(tileMap, i):
                    tileLayer = tileLayerAt(tileMap, i)
                    for y in range(tileLayer.height()):
                        tiles = []
                        for x in range(tileLayer.width()):
                            if tileLayer.cellAt(x, y).tile() != None:
                                tiles.append(str(tileLayer.cellAt(x, y).tile().id()))
                            else:
                                tiles.append(str(-1))
                        line = ','.join(tiles)
                        if y == tileLayer.height() - 1:
                            line += ';'
                        else:
                            line += ','
                        print(line, file=fileHandle)


        return True

Ensuite vous pourrez voir une entrée « Example files » dans la liste de types dans Fichier > Exporter, qui vous permet d’exporter la carte en utilisant le script ci-dessus.

Note

This example does not support the use of group layers.

Déboguer Votre Script

Toute erreur rencontrée lors de l’analyse ou du lancer du script sont affichées dans la Console, qui peut être activée dans Vue > Vues et Barres d’Outils > Console.

Référence de l’API

Ce serait bien d’avoir une référence complète de l’API documentée ici, mais pour le moment veuillez voir le fichier source pour les classes et méthodes disponibles.

Note

Any help with maintaining the Python plugin would be very appreciated. See open issues related to Python support