ATTENTION : ceci est la documentation d'une version antérieure de SFML ; la documentation de la dernière version officielle est accessible via le menu principal

Tutoriel - Démarrer - SFML et Python

Introduction

Le but de ce tutoriel est de vous expliquer comment compiler / installer / utiliser le binding Python de SFML (qui est appelé PySFML).

Installer PySFML

Vous devez tout d'abord télécharger les fichiers de développement PySFML (SFML-x.x-python-dev-windows ou SFML-x.x-python-dev-linux), qui peut être trouvé sur la page des téléchargements. Cette archive contient le code source, les exemples et un fichier d'installation pour construire et installer PySFML.

Pour installer directement les binaires précompilés, ouvrez une invite de commande dans le répertoire SFML-x.x/python, puis tapez :

python setup.py install

Sous Linux, vous devrez avoir les droits root pour installer les fichiers :

sudo python setup.py install

Si vous désirez compiler PySFML depuis le code source, vous devez avoir les en-têtes et bibliothèques C++ de SFML dans le répertoire SFML-x.x (aindi que le dossier python), et entrer la commande suivante :

python setup.py build

Sous Windows, cette commande utilise Visual C++ 2003 par défaut. Mais vous pouvez tout aussi bien compiler avec MinGW si vous le souhaitez, an ajoutant l'option "-cmingw32" :

python setup.py build -cmingw32

Puis vous pouvez installer PySFML avec la commande vue précédemment :

python setup.py install

Ecriture de votre premier programme PySFML

Contrairement aux bibliothèques C++, PySFML rassemble toutes les classes SFML dans un module unique ("sf"). Comme Python supporte les threads nativement, et qu'il possède des propres classes pour le réseau, seules les classes des modules système, fenêtrage, graphique et audio sont exposées dans PySFML.

Voici un morceau de code SFML très simple qui ouvre une fenêtre et y affiche du texte :

# On inclus l'extension PySFML
from PySFML import sf

# On crée la fenêtre principale
window = sf.RenderWindow(sf.VideoMode(800, 600), "PySFML test")

# On crée une chaîne graphique à afficher
text = sf.String("Hello SFML")

# On démarre la boucle de jeu
running = True
while running:
    event = sf.Event()
    while window.GetEvent(event):
        if event.Type == sf.Event.Closed:
            running = False

    # On affiche le texte, puis on met à jour la fenêtre
    window.Draw(text)
    window.Display()

Il n'y a aucune documentation pour ce binding Python. Toutefois, vous pouvez obtenir la description détaillée d'une classe en tapant help(sf.la_classe) dans l'interpréteur. De plus, toutes les classes sont identiques à la version C++ et vous pouvez donc tout à fait utiliser la documentation complète ainsi que les tutoriels du site.

Le répertoire "samples" contient quelques démos utilisant PySFML, vous pouvez les essayer pour vous assurer que tout fonctionne correctement après compilation et/ou installation